SPM fails to parse manifest with no error

I'm using the 5.3 release version of the CentOS 7 swift bundle with the package.swift file shown below. I can build this on mac without issue, but when I run the build command on the CentOS system, it's giving me this error that I don't understand:

$ swift build --enable-test-discovery -c release
/home/scott/push: error: manifest parse error(s):
The operation could not be completed. (TSCBasic.Process.Error error 0.)

This is the contents of my Package.swift file:

// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "push",
    platforms: [
       .macOS(.v10_15)
    ],
    dependencies: [
        .package(url: "https://github.com/vapor/postgres-kit.git", from: "2.0.0"),
        .package(name: "apnswift", url: "https://github.com/kylebrowning/APNSwift.git", from: "2.1.0")
    ],
    targets: [
        .target(
            name: "push", dependencies: [
                .product(name: "PostgresKit", package: "postgres-kit"),
                .product(name: "APNSwift", package: "apnswift")
        ]),
        .testTarget( name: "pushTests", dependencies: ["push"]),
    ]
)

TSCBasic.Process.Error 0 appears to mean an executable couldn’t be located.

If the error occurs exactly as you have posted it—immediately after the invocation and before any output about fetching dependencies for resolution—then I suspect the issue may be that Git is not installed. If it isn’t Git, then it may be some other process SwiftPM needs that isn’t included in the toolchain. Swift’s installation instructions mention several such things that need to be installed first.