The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of PerfectNet, reference 4.0.0 (5707dc), with Swift 6.2 (beta) for macOS (SPM) on 17 Jun 2025 20:21:26 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/perfectlysoft/perfect-net.git
Reference: 4.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/perfectlysoft/perfect-net
 * tag               4.0.0      -> FETCH_HEAD
HEAD is now at 5707dcc Fixed compiler warnings
Cloned https://github.com/perfectlysoft/perfect-net.git
Revision (git rev-parse @):
5707dccfe39c57f61c9c172e766590cf5ae22bf8
SUCCESS checkout https://github.com/perfectlysoft/perfect-net.git at 4.0.0
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/perfectlysoft/perfect-net.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-26.0.0-Beta.app xcrun swift build --arch arm64
Building for debugging...
[0/238] Write sources
[4/238] Write swift-version-1EA4D86E10B52AF.txt
[5/238] Compiling COpenSSL ctr128.c
[6/238] Compiling COpenSSL xcbc_enc.c
[7/238] Compiling COpenSSL cryptlib.c
[8/238] Compiling COpenSSL x509type.c
[9/238] Compiling COpenSSL aes_.c
[10/238] Compiling COpenSSL asn1_.c
[11/238] Compiling COpenSSL x509spki.c
[12/238] Compiling COpenSSL ameth_lib.c
[13/238] Compiling COpenSSL x509rset.c
[14/238] Compiling COpenSSL x_.c
[15/251] Compiling COpenSSL x509cset.c
[16/252] Compiling COpenSSL wrap128.c
[17/252] Compiling COpenSSL x509name.c
[18/252] Compiling COpenSSL xts128.c
[19/252] Compiling COpenSSL uid.c
[20/252] Compiling COpenSSL wp_.c
[21/252] Compiling COpenSSL v3err.c
[22/252] Compiling COpenSSL txt_db.c
[23/252] Compiling COpenSSL v3_lib.c
[24/252] Compiling COpenSSL x509_.c
[25/252] Compiling COpenSSL tb_store.c
[26/252] Compiling COpenSSL tb_rsa.c
[27/252] Compiling COpenSSL tb_rand.c
[28/252] Compiling COpenSSL v3_.c
[29/252] Compiling COpenSSL tb_pkmeth.c
[30/252] Compiling COpenSSL tb_ecdsa.c
[31/252] Compiling COpenSSL tb_ecdh.c
[32/252] Compiling COpenSSL tb_dsa.c
[33/252] Compiling COpenSSL tb_digest.c
[34/252] Compiling COpenSSL tb_dh.c
[35/252] Compiling COpenSSL ui_.c
[36/252] Compiling COpenSSL tb_cipher.c
[37/252] Compiling COpenSSL tb_asnmth.c
[38/252] Compiling COpenSSL tls_srp.c
[39/252] Compiling COpenSSL t_.c
[40/252] Compiling COpenSSL th-lock.c
[41/252] Compiling COpenSSL str2key.c
[42/252] Compiling COpenSSL tasn_.c
[43/252] Compiling COpenSSL stack.c
[44/252] Compiling COpenSSL sha_.c
[45/252] Compiling COpenSSL srp_.c
[46/252] Compiling COpenSSL sha512.c
[47/252] Compiling COpenSSL sha256.c
[48/252] Compiling COpenSSL sha1dgst.c
[49/252] Compiling COpenSSL t1_.c
[50/252] Compiling COpenSSL sha1_one.c
[51/252] Compiling COpenSSL seed_.c
[52/252] Compiling COpenSSL set_key.c
[53/252] Compiling COpenSSL rsaz_exp.c
[54/252] Compiling COpenSSL seed.c
[55/252] Compiling COpenSSL ts_.c
[56/252] Compiling COpenSSL rpc_enc.c
[57/252] Compiling COpenSSL s2_.c
[58/252] Compiling COpenSSL rc2ofb64.c
[59/252] Compiling COpenSSL s23_.c
[60/252] Compiling COpenSSL rmd_.c
[61/252] Compiling COpenSSL ssl_.c
[62/252] Compiling COpenSSL read2pwd.c
[63/252] Compiling COpenSSL rc2cfb64.c
[64/252] Compiling COpenSSL rc4_.c
[65/252] Compiling COpenSSL rc2_.c
[66/252] Compiling COpenSSL rsa_.c
[67/252] Compiling COpenSSL randfile.c
[68/252] Compiling COpenSSL qud_cksm.c
[69/252] Compiling COpenSSL pqueue.c
[70/252] Compiling COpenSSL rand_.c
[71/252] Compiling COpenSSL pvkfmt.c
[72/252] Compiling COpenSSL pkcs7err.c
[73/252] Compiling COpenSSL s3_.c
[74/252] Compiling COpenSSL pmeth_.c
[75/252] Compiling COpenSSL pk12err.c
[76/252] Compiling COpenSSL pcbc_enc.c
[77/252] Compiling COpenSSL p8_pkey.c
[78/252] Compiling COpenSSL p_.c
[78/252] Compiling COpenSSL pcy_.c
[80/252] Compiling COpenSSL pk7_.c
[81/252] Compiling COpenSSL openbsd_hw.c
[82/252] Compiling COpenSSL p12_.c
[83/252] Compiling COpenSSL p5_.c
[84/252] Compiling COpenSSL pem_.c
[85/252] Compiling COpenSSL ofb64ede.c
[86/252] Compiling COpenSSL ofb_enc.c
[87/252] Compiling COpenSSL ofb64enc.c
[88/252] Compiling COpenSSL ofb128.c
[89/252] Compiling COpenSSL o_.c
[90/252] Compiling COpenSSL nsseq.c
[91/252] Compiling COpenSSL obj_.c
[92/252] Compiling COpenSSL mem_.c
[93/252] Compiling COpenSSL mem.c
[94/252] Compiling COpenSSL names.c
[95/252] Compiling COpenSSL n_pkey.c
[96/252] Compiling COpenSSL ocsp_.c
[97/252] Compiling COpenSSL mdc2dgst.c
[98/252] Compiling COpenSSL mdc2_one.c
[99/252] Compiling COpenSSL md5_.c
[100/252] Compiling COpenSSL md4_.c
[101/252] Compiling COpenSSL md_rand.c
[102/252] Compiling COpenSSL m_wp.c
[103/252] Compiling COpenSSL m_sha1.c
[104/252] Compiling COpenSSL m_sigver.c
[105/252] Compiling COpenSSL m_ripemd.c
[106/252] Compiling COpenSSL m_sha.c
[107/252] Compiling COpenSSL m_null.c
[108/252] Compiling COpenSSL m_mdc2.c
[109/252] Compiling COpenSSL m_md2.c
[110/252] Compiling COpenSSL m_md5.c
[111/252] Compiling COpenSSL m_md4.c
[112/252] Compiling COpenSSL m_ecdsa.c
[113/252] Compiling COpenSSL m_dss1.c
[114/252] Compiling COpenSSL m_dss.c
[115/252] Compiling COpenSSL lhash.c
[116/252] Compiling COpenSSL lh_stats.c
[117/252] Compiling COpenSSL krb5_asn.c
[118/252] Compiling COpenSSL i_.c
[119/252] Compiling COpenSSL kssl.c
[120/252] Compiling COpenSSL gosthash.c
[121/252] Compiling COpenSSL i2d_.c
[122/252] Compiling COpenSSL hmac.c
[123/252] Compiling COpenSSL hm_.c
[124/252] Compiling COpenSSL fips_ers.c
[125/252] Compiling COpenSSL gost89.c
[126/252] Compiling COpenSSL getenv.c
[127/252] Compiling COpenSSL gost94_keyx.c
[128/252] Compiling COpenSSL gcm128.c
[129/252] Compiling COpenSSL gost2001_keyx.c
[130/252] Compiling COpenSSL gost2001.c
[131/252] Compiling COpenSSL gost_.c
[132/252] Compiling COpenSSL fcrypt.c
[133/252] Compiling COpenSSL fcrypt_b.c
[134/252] Compiling COpenSSL ex_data.c
[135/252] Compiling COpenSSL f_.c
[136/252] Compiling COpenSSL enc_.c
[137/252] Compiling COpenSSL err.c
[138/252] Compiling COpenSSL err_.c
[139/252] Compiling COpenSSL encode.c
[140/252] Compiling COpenSSL ede_cbcm_enc.c
[141/252] Compiling COpenSSL evp_.c
[142/252] Compiling COpenSSL ecp_nistputil.c
[143/252] Compiling COpenSSL ecp_nistp521.c
[144/252] Compiling COpenSSL ecp_nistp256.c
[145/252] Compiling COpenSSL ecp_nistp224.c
[146/252] Compiling COpenSSL ecs_.c
[147/252] Compiling COpenSSL eng_.c
[148/252] Compiling COpenSSL ecp_oct.c
[149/252] Compiling COpenSSL ecp_smpl.c
[150/252] Compiling COpenSSL ecp_nist.c
[151/252] Compiling COpenSSL ecp_mont.c
[152/252] Compiling COpenSSL ecb_enc.c
[153/252] Compiling COpenSSL ecb3_enc.c
[154/252] Compiling COpenSSL eck_prn.c
[155/252] Compiling COpenSSL ebcdic.c
[156/252] Compiling COpenSSL ech_.c
[157/252] Compiling COpenSSL ec2_.c
[158/252] Compiling COpenSSL e_ubsec_err.c
[159/252] Compiling COpenSSL e_sureware_err.c
[160/252] Compiling COpenSSL e_xcbc_d.c
[161/252] Compiling COpenSSL e_seed.c
[162/252] Compiling COpenSSL e_rc5.c
[163/252] Compiling COpenSSL e_ubsec.c
[164/252] Compiling COpenSSL e_sureware.c
[165/252] Compiling COpenSSL e_rc4_hmac_md5.c
[166/252] Compiling COpenSSL e_rc4.c
[167/252] Compiling COpenSSL e_rc2.c
[168/252] Compiling COpenSSL ec_.c
[169/252] Compiling COpenSSL e_nuron_err.c
[170/252] Compiling COpenSSL e_old.c
[171/252] Compiling COpenSSL e_padlock.c
[172/252] Compiling COpenSSL e_gost_err.c
[173/252] Compiling COpenSSL e_nuron.c
[174/252] Compiling COpenSSL e_idea.c
[175/252] Compiling COpenSSL e_null.c
[176/252] Compiling COpenSSL e_gmp_err.c
[177/252] Compiling COpenSSL e_gmp.c
[178/252] Compiling COpenSSL e_des.c
[179/252] Compiling COpenSSL e_des3.c
[180/252] Compiling COpenSSL e_cswift_err.c
[181/252] Compiling COpenSSL e_chil_err.c
[182/252] Compiling COpenSSL e_capi_err.c
[183/252] Compiling COpenSSL e_cast.c
[184/252] Compiling COpenSSL e_cswift.c
[185/252] Compiling COpenSSL e_chil.c
[186/252] Compiling COpenSSL e_camellia.c
[187/252] Compiling COpenSSL e_bf.c
[188/252] Compiling COpenSSL e_capi.c
[188/252] Compiling COpenSSL e_atalla_err.c
[190/252] Compiling COpenSSL e_aes_cbc_hmac_sha1.c
[191/252] Compiling COpenSSL e_aes_cbc_hmac_sha256.c
[192/252] Compiling COpenSSL e_atalla.c
[193/252] Compiling COpenSSL e_4758cca_err.c
[194/252] Compiling COpenSSL e_aep_err.c
[195/252] Compiling COpenSSL dso_.c
[196/252] Compiling COpenSSL des_old2.c
[197/252] Compiling COpenSSL e_4758cca.c
[198/252] Compiling COpenSSL digest.c
[199/252] Compiling COpenSSL e_aep.c
[200/252] Compiling COpenSSL des_old.c
[201/252] Compiling COpenSSL e_aes.c
[202/252] Compiling COpenSSL des_enc.c
[203/252] Compiling COpenSSL cversion.c
[204/252] Compiling COpenSSL cpt_err.c
[205/252] Compiling COpenSSL d2i_.c
[206/252] Compiling COpenSSL dsa_.c
[207/252] Compiling COpenSSL comp_.c
[207/252] Compiling COpenSSL dh_.c
[209/252] Compiling COpenSSL cmll_.c
[210/252] Compiling COpenSSL cfb_enc.c
[211/252] Compiling COpenSSL d1_lib.c
[212/252] Compiling COpenSSL cmac.c
[213/252] Compiling COpenSSL cfb64enc.c
[214/252] Compiling COpenSSL cm_.c
[215/252] Compiling COpenSSL conf_.c
[216/252] Compiling COpenSSL cfb64ede.c
[217/252] Compiling COpenSSL cfb128.c
[218/252] Compiling COpenSSL ccm128.c
[219/252] Compiling COpenSSL cbc3_enc.c
[220/252] Compiling COpenSSL cbc_.c
[221/252] Compiling COpenSSL cbc128.c
[222/252] Compiling COpenSSL camellia.c
[223/252] Compiling COpenSSL buffer.c
[224/252] Compiling COpenSSL buf_.c
[225/252] Compiling COpenSSL by_.c
[226/252] Compiling COpenSSL d1_.c
[227/252] Compiling COpenSSL c_.c
[228/252] Compiling COpenSSL bss_.c
[229/252] Compiling COpenSSL bf_.c
[230/252] Compiling COpenSSL b_sock.c
[231/252] Compiling COpenSSL b_dump.c
[232/252] Compiling COpenSSL b_print.c
[233/252] Compiling COpenSSL cms_.c
[234/252] Compiling COpenSSL asn_.c
[235/252] Compiling COpenSSL bio_.c
[236/252] Compiling COpenSSL a_.c
[237/252] Compiling COpenSSL bn_.c
[239/252] Compiling PerfectLib PerfectError.swift
[240/252] Compiling PerfectLib PerfectServer.swift
[241/252] Compiling PerfectLib Log.swift
[242/252] Compiling PerfectLib JSONConvertible.swift
[243/252] Emitting module PerfectThread
[244/252] Compiling PerfectLib Dir.swift
[245/252] Emitting module PerfectLib
[246/252] Compiling PerfectLib Bytes.swift
[247/252] Compiling PerfectLib File.swift
[248/252] Compiling PerfectThread Promise.swift
[249/252] Compiling PerfectThread Threading.swift
[250/252] Compiling PerfectThread ThreadQueue.swift
[251/252] Compiling PerfectLib Utilities.swift
[252/252] Compiling PerfectLib SysProcess.swift
[253/261] Compiling PerfectCrypto ByteIO.swift
[254/261] Compiling PerfectCrypto PerfectCrypto.swift
[255/261] Compiling PerfectCrypto Keys.swift
[256/261] Compiling PerfectCrypto JWT.swift
[257/261] Compiling PerfectCrypto JWK.swift
[258/261] Compiling PerfectCrypto Algorithms.swift
[259/261] Compiling PerfectCrypto Extensions.swift
[260/261] Emitting module PerfectCrypto
[261/261] Compiling PerfectCrypto OpenSSLInternal.swift
[262/269] Compiling PerfectNet NetUDP.swift
[263/269] Compiling PerfectNet NetTCP.swift
[264/269] Compiling PerfectNet NetNamedPipe.swift
/Users/admin/builder/spi-builder-workspace/Sources/PerfectNet/NetNamedPipe.swift:41:7: warning: variable 'addr' was never mutated; consider changing to 'let' constant
 39 |
 40 | 	public func sockName() -> (String, UInt16) {
 41 | 		var addr = UnsafeMutablePointer<sockaddr_un>.allocate(capacity: 1)
    |       `- warning: variable 'addr' was never mutated; consider changing to 'let' constant
 42 | 		var len = UnsafeMutablePointer<socklen_t>.allocate(capacity: 1)
 43 | 		defer {
/Users/admin/builder/spi-builder-workspace/Sources/PerfectNet/NetNamedPipe.swift:42:7: warning: variable 'len' was never mutated; consider changing to 'let' constant
 40 | 	public func sockName() -> (String, UInt16) {
 41 | 		var addr = UnsafeMutablePointer<sockaddr_un>.allocate(capacity: 1)
 42 | 		var len = UnsafeMutablePointer<socklen_t>.allocate(capacity: 1)
    |       `- warning: variable 'len' was never mutated; consider changing to 'let' constant
 43 | 		defer {
 44 | 			addr.deallocate()
/Users/admin/builder/spi-builder-workspace/Sources/PerfectNet/NetNamedPipe.swift:70:7: warning: variable 'addr' was never mutated; consider changing to 'let' constant
 68 |
 69 | 	public func peerName() -> (String, UInt16) {
 70 | 		var addr = UnsafeMutablePointer<sockaddr_un>.allocate(capacity: 1)
    |       `- warning: variable 'addr' was never mutated; consider changing to 'let' constant
 71 | 		var len = UnsafeMutablePointer<socklen_t>.allocate(capacity: 1)
 72 | 		defer {
/Users/admin/builder/spi-builder-workspace/Sources/PerfectNet/NetNamedPipe.swift:71:7: warning: variable 'len' was never mutated; consider changing to 'let' constant
 69 | 	public func peerName() -> (String, UInt16) {
 70 | 		var addr = UnsafeMutablePointer<sockaddr_un>.allocate(capacity: 1)
 71 | 		var len = UnsafeMutablePointer<socklen_t>.allocate(capacity: 1)
    |       `- warning: variable 'len' was never mutated; consider changing to 'let' constant
 72 | 		defer {
 73 | 			addr.deallocate()
/Users/admin/builder/spi-builder-workspace/Sources/PerfectNet/NetNamedPipe.swift:209:7: warning: variable 'nothingPtr' was never mutated; consider changing to 'let' constant
207 | 		var msghdr = UnsafeMutablePointer<Darwin.msghdr>.allocate(capacity: 1)
208 | 	#endif
209 | 		var nothingPtr = UnsafeMutablePointer<iovec>.allocate(capacity: 1)
    |       `- warning: variable 'nothingPtr' was never mutated; consider changing to 'let' constant
210 | 		var nothing = UnsafeMutablePointer<CChar>.allocate(capacity: 1)
211 | 		let buffer = UnsafeMutableRawPointer.allocate(byteCount: length, alignment: 8)
/Users/admin/builder/spi-builder-workspace/Sources/PerfectNet/NetNamedPipe.swift:210:7: warning: variable 'nothing' was never mutated; consider changing to 'let' constant
208 | 	#endif
209 | 		var nothingPtr = UnsafeMutablePointer<iovec>.allocate(capacity: 1)
210 | 		var nothing = UnsafeMutablePointer<CChar>.allocate(capacity: 1)
    |       `- warning: variable 'nothing' was never mutated; consider changing to 'let' constant
211 | 		let buffer = UnsafeMutableRawPointer.allocate(byteCount: length, alignment: 8)
212 | 		defer {
/Users/admin/builder/spi-builder-workspace/Sources/PerfectNet/NetNamedPipe.swift:273:7: warning: variable 'nothingPtr' was never mutated; consider changing to 'let' constant
271 | 		let length = MemoryLayout<cmsghdr>.size + MemoryLayout<Int32>.size
272 | 		var msghdrr = msghdr()
273 | 		var nothingPtr = UnsafeMutablePointer<iovec>.allocate(capacity: 1)
    |       `- warning: variable 'nothingPtr' was never mutated; consider changing to 'let' constant
274 | 		var nothing = UnsafeMutablePointer<CChar>.allocate(capacity: 1)
275 | 		let buffer = UnsafeMutableRawPointer.allocate(byteCount: length, alignment: 8)
/Users/admin/builder/spi-builder-workspace/Sources/PerfectNet/NetNamedPipe.swift:274:7: warning: variable 'nothing' was never mutated; consider changing to 'let' constant
272 | 		var msghdrr = msghdr()
273 | 		var nothingPtr = UnsafeMutablePointer<iovec>.allocate(capacity: 1)
274 | 		var nothing = UnsafeMutablePointer<CChar>.allocate(capacity: 1)
    |       `- warning: variable 'nothing' was never mutated; consider changing to 'let' constant
275 | 		let buffer = UnsafeMutableRawPointer.allocate(byteCount: length, alignment: 8)
276 | 		defer {
[265/269] Compiling PerfectNet NetAddress.swift
/Users/admin/builder/spi-builder-workspace/Sources/PerfectNet/NetAddress.swift:97:26: warning: variable 'resultList' was never mutated; consider changing to 'let' constant
 95 | 			result = getaddrinfo(host, nil, &hints, &resultListPtr)
 96 | 		}
 97 | 		guard result == 0, var resultList = resultListPtr else {
    |                          `- warning: variable 'resultList' was never mutated; consider changing to 'let' constant
 98 | 			return nil
 99 | 		}
[266/269] Compiling PerfectNet NetEvent.swift
[267/269] Compiling PerfectNet Net.swift
[268/269] Compiling PerfectNet NetTCPSSL.swift
/Users/admin/builder/spi-builder-workspace/Sources/PerfectNet/NetTCPSSL.swift:30:52: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 28 |
 29 | private typealias passwordCallbackFunc = @convention(c) (UnsafeMutablePointer<Int8>?, Int32, Int32, UnsafeMutableRawPointer?) -> Int32
 30 | public typealias VerifyCACallbackFunc = @convention (c) (Int32, UnsafeMutablePointer<X509_STORE_CTX>?) -> Int32
    |                                                    `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 31 |
 32 | public struct OpenSSLVerifyMode: OptionSet {
[269/269] Emitting module PerfectNet
/Users/admin/builder/spi-builder-workspace/Sources/PerfectNet/NetTCPSSL.swift:30:52: warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 28 |
 29 | private typealias passwordCallbackFunc = @convention(c) (UnsafeMutablePointer<Int8>?, Int32, Int32, UnsafeMutableRawPointer?) -> Int32
 30 | public typealias VerifyCACallbackFunc = @convention (c) (Int32, UnsafeMutablePointer<X509_STORE_CTX>?) -> Int32
    |                                                    `- warning: extraneous whitespace between attribute name and '('; this is an error in the Swift 6 language mode
 31 |
 32 | public struct OpenSSLVerifyMode: OptionSet {
Build complete! (16.16s)
Fetching https://github.com/PerfectlySoft/Perfect-Thread.git
Fetching https://github.com/PerfectlySoft/Perfect-Crypto.git
[1/379] Fetching perfect-thread
[146/991] Fetching perfect-thread, perfect-crypto
Fetched https://github.com/PerfectlySoft/Perfect-Crypto.git from cache (0.82s)
Fetched https://github.com/PerfectlySoft/Perfect-Thread.git from cache (0.82s)
Computing version for https://github.com/PerfectlySoft/Perfect-Crypto.git
Computed https://github.com/PerfectlySoft/Perfect-Crypto.git at 4.0.0 (1.38s)
Fetching https://github.com/PerfectlySoft/Perfect-COpenSSL.git
Fetching https://github.com/PerfectlySoft/PerfectLib.git
[1/10784] Fetching perfectlib
[325/14745] Fetching perfectlib, perfect-copenssl
Fetched https://github.com/PerfectlySoft/Perfect-COpenSSL.git from cache (2.48s)
Fetched https://github.com/PerfectlySoft/PerfectLib.git from cache (2.49s)
Computing version for https://github.com/PerfectlySoft/PerfectLib.git
Computed https://github.com/PerfectlySoft/PerfectLib.git at 4.0.1 (3.03s)
Computing version for https://github.com/PerfectlySoft/Perfect-COpenSSL.git
Computed https://github.com/PerfectlySoft/Perfect-COpenSSL.git at 4.0.2 (1.92s)
Computing version for https://github.com/PerfectlySoft/Perfect-Thread.git
Computed https://github.com/PerfectlySoft/Perfect-Thread.git at 3.0.7 (0.50s)
Creating working copy for https://github.com/PerfectlySoft/PerfectLib.git
Working copy of https://github.com/PerfectlySoft/PerfectLib.git resolved at 4.0.1
Creating working copy for https://github.com/PerfectlySoft/Perfect-Crypto.git
Working copy of https://github.com/PerfectlySoft/Perfect-Crypto.git resolved at 4.0.0
Creating working copy for https://github.com/PerfectlySoft/Perfect-Thread.git
Working copy of https://github.com/PerfectlySoft/Perfect-Thread.git resolved at 3.0.7
Creating working copy for https://github.com/PerfectlySoft/Perfect-COpenSSL.git
Working copy of https://github.com/PerfectlySoft/Perfect-COpenSSL.git resolved at 4.0.2
Build complete.
{
  "dependencies" : [
    {
      "identity" : "perfect-crypto",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.0.0",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/PerfectlySoft/Perfect-Crypto.git"
    },
    {
      "identity" : "perfect-thread",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "3.0.0",
            "upper_bound" : "4.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/PerfectlySoft/Perfect-Thread.git"
    }
  ],
  "manifest_display_name" : "PerfectNet",
  "name" : "PerfectNet",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    }
  ],
  "products" : [
    {
      "name" : "PerfectNet",
      "targets" : [
        "PerfectNet"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "PerfectNetTests",
      "module_type" : "SwiftTarget",
      "name" : "PerfectNetTests",
      "path" : "Tests/PerfectNetTests",
      "product_dependencies" : [
        "PerfectCrypto",
        "PerfectThread"
      ],
      "sources" : [
        "PerfectNetTests.swift"
      ],
      "target_dependencies" : [
        "PerfectNet"
      ],
      "type" : "test"
    },
    {
      "c99name" : "PerfectNet",
      "module_type" : "SwiftTarget",
      "name" : "PerfectNet",
      "path" : "Sources/PerfectNet",
      "product_dependencies" : [
        "PerfectCrypto",
        "PerfectThread"
      ],
      "product_memberships" : [
        "PerfectNet"
      ],
      "sources" : [
        "Net.swift",
        "NetAddress.swift",
        "NetEvent.swift",
        "NetNamedPipe.swift",
        "NetTCP.swift",
        "NetTCPSSL.swift",
        "NetUDP.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.1"
}
Done.