Browse Source

Fix vendoring scripts

George Barnett 5 years ago
parent
commit
4eec016edf

+ 0 - 1
Sources/CgRPC/include/src

@@ -1 +0,0 @@
-../src

+ 0 - 1
Sources/CgRPC/include/third_party

@@ -1 +0,0 @@
-../third_party

+ 11 - 0
scripts/patch-1-import.patch

@@ -0,0 +1,11 @@
+--- a/Sources/CgRPC/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc
++++ b/Sources/CgRPC/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc
+@@ -68,7 +68,7 @@
+ #include <grpc/support/string_util.h>
+ #include <grpc/support/time.h>
+
+-#include "include/grpc/support/alloc.h"
++#include "grpc/support/alloc.h"
+ #include "src/core/ext/filters/client_channel/client_channel.h"
+ #include "src/core/ext/filters/client_channel/lb_policy.h"
+ #include "src/core/ext/filters/client_channel/lb_policy/xds/xds.h"

+ 6 - 6
scripts/vendor-all.sh

@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 # Copyright 2019, gRPC Authors All rights reserved.
 #
@@ -34,16 +34,13 @@ mkdir -p $TMP_DIR
 rm -rf $TMP_DIR/grpc
 cd $TMP_DIR
 
-# Clone gRPC Core, update its submodules, and check out the specified version.
+# Clone gRPC Core, check out the specified version, and update its submodules.
 git clone git@github.com:grpc/grpc.git
 cd grpc
+git checkout "$GRPC_VERSION"
 git submodule update --init --recursive
-git checkout $GRPC_VERSION
 cd ../..
 
-# Update the vendored version of BoringSSL (removing previous versions).
-./vendor-boringssl.sh
-
 # Copy the vendoring template into the gRPC Core's directory of templates.
 # Then, run the gRPC Core's generator on that template.
 cp ./swift-vendoring.sh.template $TMP_DIR/grpc/templates
@@ -54,4 +51,7 @@ cd ../..
 # Finish copying the vendored version of the gRPC Core.
 ./vendor-grpc.sh
 
+# Update the vendored version of BoringSSL (removing previous versions).
+./vendor-boringssl.sh
+
 echo "UPDATED vendored dependencies to $GRPC_VERSION"

+ 5 - 7
scripts/vendor-boringssl.sh

@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 # Copyright 2019, gRPC Authors All rights reserved.
 #
@@ -18,6 +18,7 @@
 # suitable for building with the Swift Package Manager.
 #
 # For usage, see `vendor-all.sh`.
+set -eu
 
 SRCROOT=./tmp/grpc/third_party/boringssl
 DSTROOT=../Sources/BoringSSL
@@ -54,15 +55,12 @@ do
   for i in $SRCROOT/$pattern; do
     path=${i#$SRCROOT}
     dest="$DSTROOT$path"
-    dest_dir=$(dirname $dest)
-    mkdir -p $dest_dir
-    cp $SRCROOT/$path $dest
+    dest_dir=$(dirname "$dest")
+    mkdir -p "$dest_dir"
+    cp "$SRCROOT/$path" "$dest"
   done
 done
 
-echo "COPYING err_data.c from gRPC project"
-cp ./third_party/grpc/src/boringssl/err_data.c $DSTROOT
-
 for exclude in "${EXCLUDES[@]}"
 do
   echo "EXCLUDING $exclude"

+ 37 - 17
scripts/vendor-grpc.sh

@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 # Copyright 2019, gRPC Authors All rights reserved.
 #
@@ -19,6 +19,7 @@
 # the Swift Package Manager.
 #
 # For usage, see `vendor-all.sh`.
+set -eu
 
 source ./tmp/grpc/swift-vendoring.sh
 
@@ -42,41 +43,60 @@ echo "COPYING public gRPC headers"
 for src in "${public_headers[@]}"
 do
 	dest="$DSTROOT/CgRPC/$src"
-	dest_dir=$(dirname $dest)
-	mkdir -pv $dest_dir
-	cp $TMP_DIR/grpc/$src $dest
+	dest_dir=$(dirname "$dest")
+	mkdir -pv "$dest_dir"
+	cp "$TMP_DIR/grpc/$src" "$dest"
 done
 
 echo "COPYING private gRPC headers"
 for src in "${private_headers[@]}"
 do
 	dest="$DSTROOT/CgRPC/$src"
-	dest_dir=$(dirname $dest)
-	mkdir -pv $dest_dir
-	cp $TMP_DIR/grpc/$src $dest
+	dest_dir=$(dirname "$dest")
+	mkdir -pv "$dest_dir"
+	cp "$TMP_DIR/grpc/$src" "$dest"
 done
 
 echo "COPYING gRPC source files"
 for src in "${source_files[@]}"
 do
 	dest="$DSTROOT/CgRPC/$src"
-	dest_dir=$(dirname $dest)
-	mkdir -pv $dest_dir
-	cp $TMP_DIR/grpc/$src $dest
+	dest_dir=$(dirname "$dest")
+	mkdir -pv "$dest_dir"
+	cp "$TMP_DIR/grpc/$src" "$dest"
 done
 
-echo "ADDING additional compiler flags to nanopb/pb.h"
-perl -pi -e 's/\/\* #define PB_FIELD_16BIT 1 \*\//#define PB_FIELD_16BIT 1/' $DSTROOT/CgRPC/third_party/nanopb/pb.h
-
-echo "MOVING nanopb headers to CgRPC/include"
-mv $DSTROOT/CgRPC/third_party/nanopb/*.h $DSTROOT/CgRPC/include/
-
 echo "ADDING additional compiler flags to tsi/ssl_transport_security.cc"
 perl -pi -e 's/#define TSI_OPENSSL_ALPN_SUPPORT 1/#define TSI_OPENSSL_ALPN_SUPPORT 0/' $DSTROOT/CgRPC/src/core/tsi/ssl_transport_security.cc
 
+echo "COPYING CgRPC/src to CgRPC/include"
+cp -rp $DSTROOT/CgRPC/src $DSTROOT/CgRPC/include/src
+
+echo "REMOVING *.c and *.cc from CgRPC/include"
+find $DSTROOT/CgRPC/include/src -name '*.c' -delete
+find $DSTROOT/CgRPC/include/src -name '*.cc' -delete
+
+echo "MOVING headers from CgRPC/include/src/core/ext/upb-generated/src/proto to CgRPC/include/src/proto"
+mv -v "$DSTROOT/CgRPC/include/src/core/ext/upb-generated/src/proto" "$DSTROOT/CgRPC/include/src/proto"
+
+echo "MOVING headers from CgRPC/include/src/core/ext/upb-generated/* to CgRPC/include"
+mv -v $DSTROOT/CgRPC/include/src/core/ext/upb-generated/envoy "$DSTROOT/CgRPC/include/envoy"
+mv -v $DSTROOT/CgRPC/include/src/core/ext/upb-generated/gogoproto "$DSTROOT/CgRPC/include/gogoproto"
+mv -v $DSTROOT/CgRPC/include/src/core/ext/upb-generated/google "$DSTROOT/CgRPC/include/google"
+mv -v $DSTROOT/CgRPC/include/src/core/ext/upb-generated/udpa "$DSTROOT/CgRPC/include/udpa"
+mv -v $DSTROOT/CgRPC/include/src/core/ext/upb-generated/validate "$DSTROOT/CgRPC/include/validate"
+
+echo "MOVING headers CgRPC/third_party/upb from CgRPC/include/upb"
+mkdir -p $DSTROOT/CgRPC/include/upb
+cp -rp $DSTROOT/CgRPC/third_party/upb/upb/*.h $DSTROOT/CgRPC/include/upb
+cp -rp $DSTROOT/CgRPC/third_party/upb/upb/*.inc $DSTROOT/CgRPC/include/upb
+
 echo "DISABLING ARES"
 perl -pi -e 's/#define GRPC_ARES 1/#define GRPC_ARES 0/' $DSTROOT/CgRPC/include/grpc/impl/codegen/port_platform.h
 
+echo "APPLYING patches"
+(cd ..; git apply scripts/patch-1-import.patch)
+
 echo "COPYING roots.pem"
-echo "Please run 'swift run RootsEncoder > Sources/SwiftGRPC/Core/Roots.swift' to import the updated certificates." 
+echo "Please run 'swift run RootsEncoder > Sources/SwiftGRPC/Core/Roots.swift' to import the updated certificates."
 cp $TMP_DIR/grpc/etc/roots.pem $DSTASSETS/roots.pem