Remove deprecated protoc-artifacts directory (#10628)
* Move build-protoc.sh script to kokoro release directory * Move pom.xml to root directory * Delete protoc-artifacts directory * Merge pom.xml into the java/protoc version * Review commentspull/10662/head
parent
83d6e74bc6
commit
d0936c37f5
9 changed files with 50 additions and 446 deletions
@ -0,0 +1,42 @@ |
|||||||
|
# Publish pre-compiled protoc artifacts |
||||||
|
``protoc`` is the compiler for ``.proto`` files. It generates language bindings |
||||||
|
for the messages and/or RPC services from ``.proto`` files. |
||||||
|
|
||||||
|
Because ``protoc`` is a native executable, the scripts under this directory |
||||||
|
publish a ``protoc`` executable (a.k.a. artifact) to Maven repositories. The |
||||||
|
artifact can be used by build automation tools so that users would not need to |
||||||
|
compile and install ``protoc`` for their systems. |
||||||
|
|
||||||
|
If you would like us to publish protoc artifact for a new platform, please |
||||||
|
open an issue to request it. |
||||||
|
|
||||||
|
## Maven Location |
||||||
|
The published protoc artifacts are available on Maven here: |
||||||
|
|
||||||
|
https://repo.maven.apache.org/maven2/com/google/protobuf/protoc/ |
||||||
|
|
||||||
|
## Versioning |
||||||
|
The version of the ``protoc`` artifact must be the same as the version of the |
||||||
|
Protobuf project. |
||||||
|
|
||||||
|
## Artifact name |
||||||
|
The name of a published ``protoc`` artifact is in the following format: |
||||||
|
``protoc-<version>-<os>-<arch>.exe``, e.g., ``protoc-3.6.1-linux-x86_64.exe``. |
||||||
|
|
||||||
|
Note that artifacts for linux/macos also have the `.exe` suffix but they are |
||||||
|
not windows binaries. |
||||||
|
|
||||||
|
## System requirement |
||||||
|
Install [Apache Maven](http://maven.apache.org/) if you don't have it. |
||||||
|
|
||||||
|
The scripts only work under Unix-like environments, e.g., Linux, MacOSX, and |
||||||
|
Cygwin or MinGW for Windows. Please see ``README.md`` of the Protobuf project |
||||||
|
for how to set up the build environment. |
||||||
|
|
||||||
|
## Tested build environments |
||||||
|
We have successfully built artifacts on the following environments: |
||||||
|
- Linux x86_32 and x86_64: |
||||||
|
- Centos 6.9 (within Docker 1.6.1) |
||||||
|
- Ubuntu 14.04.5 64-bit |
||||||
|
- Linux aarch_64: Cross compiled with `g++-aarch64-linux-gnu` on Ubuntu 14.04.5 64-bit |
||||||
|
- Mac OS X x86_32 and x86_64: Mac OS X 10.9.5 |
@ -1,161 +0,0 @@ |
|||||||
# Build scripts that publish pre-compiled protoc artifacts |
|
||||||
``protoc`` is the compiler for ``.proto`` files. It generates language bindings |
|
||||||
for the messages and/or RPC services from ``.proto`` files. |
|
||||||
|
|
||||||
Because ``protoc`` is a native executable, the scripts under this directory |
|
||||||
build and publish a ``protoc`` executable (a.k.a. artifact) to Maven |
|
||||||
repositories. The artifact can be used by build automation tools so that users |
|
||||||
would not need to compile and install ``protoc`` for their systems. |
|
||||||
|
|
||||||
If you would like us to publish protoc artifact for a new platform, please send |
|
||||||
us a pull request to add support for the new platform. You would need to change |
|
||||||
the following files: |
|
||||||
|
|
||||||
* [build-protoc.sh](build-protoc.sh): script to cross-build the protoc for your |
|
||||||
platform. |
|
||||||
* [pom.xml](pom.xml): script to upload artifacts to maven. |
|
||||||
* [build-zip.sh](build-zip.sh): script to package published maven artifacts in |
|
||||||
our release page. |
|
||||||
|
|
||||||
## Maven Location |
|
||||||
The published protoc artifacts are available on Maven here: |
|
||||||
|
|
||||||
https://repo.maven.apache.org/maven2/com/google/protobuf/protoc/ |
|
||||||
|
|
||||||
## Versioning |
|
||||||
The version of the ``protoc`` artifact must be the same as the version of the |
|
||||||
Protobuf project. |
|
||||||
|
|
||||||
## Artifact name |
|
||||||
The name of a published ``protoc`` artifact is in the following format: |
|
||||||
``protoc-<version>-<os>-<arch>.exe``, e.g., ``protoc-3.6.1-linux-x86_64.exe``. |
|
||||||
|
|
||||||
Note that artifacts for linux/macos also have the `.exe` suffix but they are |
|
||||||
not windows binaries. |
|
||||||
|
|
||||||
## System requirement |
|
||||||
Install [Apache Maven](http://maven.apache.org/) if you don't have it. |
|
||||||
|
|
||||||
The scripts only work under Unix-like environments, e.g., Linux, MacOSX, and |
|
||||||
Cygwin or MinGW for Windows. Please see ``README.md`` of the Protobuf project |
|
||||||
for how to set up the build environment. |
|
||||||
|
|
||||||
## Building from a freshly checked-out source |
|
||||||
|
|
||||||
If you just checked out the Protobuf source from github, you need to |
|
||||||
pull in any submodules. |
|
||||||
|
|
||||||
Under the protobuf project directory: |
|
||||||
|
|
||||||
|
|
||||||
``` |
|
||||||
git submodule update --init --recursive |
|
||||||
``` |
|
||||||
|
|
||||||
### Build the artifact for each platform |
|
||||||
|
|
||||||
Run the build-protoc.sh script under this protoc-artifacts directory to build the protoc |
|
||||||
artifact for each platform. For example: |
|
||||||
|
|
||||||
``` |
|
||||||
$ cd protoc-artifacts |
|
||||||
$ ./build-protoc.sh linux x86_64 protoc |
|
||||||
``` |
|
||||||
|
|
||||||
The above command will produce a `target/linux/x86_64/protoc` binary under the |
|
||||||
protoc-artifacts directory. |
|
||||||
|
|
||||||
For a list of supported platforms, see the comments in the build-protoc.sh |
|
||||||
script. We only use this script to build artifacts on Ubuntu and MacOS (both |
|
||||||
with x86_64, and do cross-compilation for other platforms. |
|
||||||
|
|
||||||
### Tips for building for Linux |
|
||||||
We build on Centos 6.9 to provide a good compatibility for not very new |
|
||||||
systems. We have provided a ``Dockerfile`` under this directory to build the |
|
||||||
environment. It has been tested with Docker 1.6.1. |
|
||||||
|
|
||||||
To build a image: |
|
||||||
|
|
||||||
``` |
|
||||||
$ docker build -t protoc-artifacts . |
|
||||||
``` |
|
||||||
|
|
||||||
To run the image: |
|
||||||
|
|
||||||
``` |
|
||||||
$ docker run -it --rm=true protoc-artifacts bash |
|
||||||
``` |
|
||||||
|
|
||||||
To checkout protobuf (run within the container): |
|
||||||
|
|
||||||
``` |
|
||||||
$ # Replace v3.5.1 with the version you want |
|
||||||
$ wget -O - https://github.com/protocolbuffers/protobuf/archive/v3.5.1.tar.gz | tar xvzp |
|
||||||
``` |
|
||||||
|
|
||||||
### Windows build |
|
||||||
We no longer use scripts in this directory to build windows artifacts. Instead, |
|
||||||
we use Visual Studio 2015 to build our windows release artifacts. See our |
|
||||||
[kokoro windows build scripts here](../kokoro/release/protoc/windows/build.bat). |
|
||||||
|
|
||||||
To upload windows artifacts, copy the built binaries into this directory and |
|
||||||
put it into the target/windows/(x86_64|x86_32) directory the same way as the |
|
||||||
artifacts for other platforms. That will allow the maven script to find and |
|
||||||
upload the artifacts to maven. |
|
||||||
|
|
||||||
## To push artifacts to Maven Central |
|
||||||
Before you can upload artifacts to Maven Central repository, make sure you have |
|
||||||
read [this page](http://central.sonatype.org/pages/apache-maven.html) on how to |
|
||||||
configure GPG and Sonatype account. |
|
||||||
|
|
||||||
Before you do the deployment, make sure you have built the protoc artifacts for |
|
||||||
every supported platform and put them under the target directory. Example |
|
||||||
target directory layout: |
|
||||||
|
|
||||||
+ pom.xml |
|
||||||
+ target |
|
||||||
+ linux |
|
||||||
+ x86_64 |
|
||||||
protoc.exe |
|
||||||
+ x86_32 |
|
||||||
protoc.exe |
|
||||||
+ aarch_64 |
|
||||||
protoc.exe |
|
||||||
+ ppcle_64 |
|
||||||
protoc.exe |
|
||||||
+ s390_64 |
|
||||||
protoc.exe |
|
||||||
+ osx |
|
||||||
+ x86_64 |
|
||||||
protoc.exe |
|
||||||
+ x86_32 |
|
||||||
protoc.exe |
|
||||||
+ windows |
|
||||||
+ x86_64 |
|
||||||
protoc.exe |
|
||||||
+ x86_32 |
|
||||||
protoc.exe |
|
||||||
|
|
||||||
You will need to build the artifacts on multiple machines and gather them |
|
||||||
together into one place. |
|
||||||
|
|
||||||
Use the following command to deploy artifacts for the host platform to a |
|
||||||
staging repository. |
|
||||||
|
|
||||||
``` |
|
||||||
$ mvn deploy -P release |
|
||||||
``` |
|
||||||
|
|
||||||
It creates a new staging repository. Go to |
|
||||||
https://oss.sonatype.org/#stagingRepositories and find the repository, usually |
|
||||||
in the name like ``comgoogle-123``. Verify that the staging repository has all |
|
||||||
the binaries, close and release this repository. |
|
||||||
|
|
||||||
|
|
||||||
## Tested build environments |
|
||||||
We have successfully built artifacts on the following environments: |
|
||||||
- Linux x86_32 and x86_64: |
|
||||||
- Centos 6.9 (within Docker 1.6.1) |
|
||||||
- Ubuntu 14.04.5 64-bit |
|
||||||
- Linux aarch_64: Cross compiled with `g++-aarch64-linux-gnu` on Ubuntu 14.04.5 64-bit |
|
||||||
- Mac OS X x86_32 and x86_64: Mac OS X 10.9.5 |
|
@ -1,120 +0,0 @@ |
|||||||
#!/bin/bash |
|
||||||
|
|
||||||
if [ $# -ne 2 ]; then |
|
||||||
cat <<EOF |
|
||||||
Usage: $0 <TARGET> <VERSION_NUMBER> |
|
||||||
|
|
||||||
TARGET: protoc | protoc-gen-javalite |
|
||||||
|
|
||||||
Example: |
|
||||||
$ $0 protoc 3.0.0 |
|
||||||
$ $0 protoc-gen-javalite 3.0.0 |
|
||||||
|
|
||||||
This script will download pre-built protoc or protoc plugin binaries from maven |
|
||||||
repository and create .zip packages suitable to be included in the github |
|
||||||
release page. If the target is protoc, well-known type .proto files will also be |
|
||||||
included. Each invocation will create 8 zip packages: |
|
||||||
dist/<TARGET>-<VERSION_NUMBER>-win32.zip |
|
||||||
dist/<TARGET>-<VERSION_NUMBER>-win64.zip |
|
||||||
dist/<TARGET>-<VERSION_NUMBER>-osx-aarch_64.zip |
|
||||||
dist/<TARGET>-<VERSION_NUMBER>-osx-x86_64.zip |
|
||||||
dist/<TARGET>-<VERSION_NUMBER>-linux-x86_32.zip |
|
||||||
dist/<TARGET>-<VERSION_NUMBER>-linux-x86_64.zip |
|
||||||
dist/<TARGET>-<VERSION_NUMBER>-linux-aarch_64.zip |
|
||||||
dist/<TARGET>-<VERSION_NUMBER>-linux-ppcle_64.zip |
|
||||||
dist/<TARGET>-<VERSION_NUMBER>-linux-s390_64.zip |
|
||||||
EOF |
|
||||||
exit 1 |
|
||||||
fi |
|
||||||
|
|
||||||
TARGET=$1 |
|
||||||
VERSION_NUMBER=$2 |
|
||||||
|
|
||||||
# <zip file name> <binary file name> pairs. |
|
||||||
declare -a FILE_NAMES=( \ |
|
||||||
win32.zip windows-x86_32.exe \ |
|
||||||
win64.zip windows-x86_64.exe \ |
|
||||||
osx-aarch_64.zip osx-aarch_64.exe \ |
|
||||||
osx-x86_64.zip osx-x86_64.exe \ |
|
||||||
linux-x86_32.zip linux-x86_32.exe \ |
|
||||||
linux-x86_64.zip linux-x86_64.exe \ |
|
||||||
linux-aarch_64.zip linux-aarch_64.exe \ |
|
||||||
linux-ppcle_64.zip linux-ppcle_64.exe \ |
|
||||||
linux-s390_64.zip linux-s390_64.exe \ |
|
||||||
) |
|
||||||
|
|
||||||
# List of all well-known types to be included. |
|
||||||
declare -a WELL_KNOWN_TYPES=( \ |
|
||||||
google/protobuf/descriptor.proto \ |
|
||||||
google/protobuf/any.proto \ |
|
||||||
google/protobuf/api.proto \ |
|
||||||
google/protobuf/duration.proto \ |
|
||||||
google/protobuf/empty.proto \ |
|
||||||
google/protobuf/field_mask.proto \ |
|
||||||
google/protobuf/source_context.proto \ |
|
||||||
google/protobuf/struct.proto \ |
|
||||||
google/protobuf/timestamp.proto \ |
|
||||||
google/protobuf/type.proto \ |
|
||||||
google/protobuf/wrappers.proto \ |
|
||||||
google/protobuf/compiler/plugin.proto \ |
|
||||||
) |
|
||||||
|
|
||||||
set -e |
|
||||||
|
|
||||||
# A temporary working directory to put all files. |
|
||||||
DIR=$(mktemp -d) |
|
||||||
|
|
||||||
# Copy over well-known types. |
|
||||||
mkdir -p ${DIR}/include/google/protobuf/compiler |
|
||||||
for PROTO in ${WELL_KNOWN_TYPES[@]}; do |
|
||||||
cp -f ../src/${PROTO} ${DIR}/include/${PROTO} |
|
||||||
done |
|
||||||
|
|
||||||
# Create a readme file. |
|
||||||
cat <<EOF > ${DIR}/readme.txt |
|
||||||
Protocol Buffers - Google's data interchange format |
|
||||||
Copyright 2008 Google Inc. |
|
||||||
https://developers.google.com/protocol-buffers/ |
|
||||||
|
|
||||||
This package contains a precompiled binary version of the protocol buffer |
|
||||||
compiler (protoc). This binary is intended for users who want to use Protocol |
|
||||||
Buffers in languages other than C++ but do not want to compile protoc |
|
||||||
themselves. To install, simply place this binary somewhere in your PATH. |
|
||||||
|
|
||||||
If you intend to use the included well known types then don't forget to |
|
||||||
copy the contents of the 'include' directory somewhere as well, for example |
|
||||||
into '/usr/local/include/'. |
|
||||||
|
|
||||||
Please refer to our official github site for more installation instructions: |
|
||||||
https://github.com/protocolbuffers/protobuf |
|
||||||
EOF |
|
||||||
|
|
||||||
mkdir -p dist |
|
||||||
mkdir -p ${DIR}/bin |
|
||||||
# Create a zip file for each binary. |
|
||||||
for((i=0;i<${#FILE_NAMES[@]};i+=2));do |
|
||||||
ZIP_NAME=${FILE_NAMES[$i]} |
|
||||||
if [ ${ZIP_NAME:0:3} = "win" ]; then |
|
||||||
BINARY="$TARGET.exe" |
|
||||||
else |
|
||||||
BINARY="$TARGET" |
|
||||||
fi |
|
||||||
BINARY_NAME=${FILE_NAMES[$(($i+1))]} |
|
||||||
BINARY_URL=https://repo1.maven.org/maven2/com/google/protobuf/$TARGET/${VERSION_NUMBER}/$TARGET-${VERSION_NUMBER}-${BINARY_NAME} |
|
||||||
if ! wget ${BINARY_URL} -O ${DIR}/bin/$BINARY &> /dev/null; then |
|
||||||
echo "[ERROR] Failed to download ${BINARY_URL}" >&2 |
|
||||||
echo "[ERROR] Skipped $TARGET-${VERSION_NAME}-${ZIP_NAME}" >&2 |
|
||||||
continue |
|
||||||
fi |
|
||||||
TARGET_ZIP_FILE=`pwd`/dist/$TARGET-${VERSION_NUMBER}-${ZIP_NAME} |
|
||||||
pushd $DIR &> /dev/null |
|
||||||
chmod +x bin/$BINARY |
|
||||||
if [ "$TARGET" = "protoc" ]; then |
|
||||||
zip -r ${TARGET_ZIP_FILE} include bin readme.txt &> /dev/null |
|
||||||
else |
|
||||||
zip -r ${TARGET_ZIP_FILE} bin &> /dev/null |
|
||||||
fi |
|
||||||
rm bin/$BINARY |
|
||||||
popd &> /dev/null |
|
||||||
echo "[INFO] Successfully created ${TARGET_ZIP_FILE}" |
|
||||||
done |
|
@ -1,144 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> |
|
||||||
<modelVersion>4.0.0</modelVersion> |
|
||||||
<parent> |
|
||||||
<groupId>com.google</groupId> |
|
||||||
<artifactId>google</artifactId> |
|
||||||
<version>5</version> |
|
||||||
</parent> |
|
||||||
<groupId>com.google.protobuf</groupId> |
|
||||||
<artifactId>protoc</artifactId> |
|
||||||
<version>3.21.6</version> |
|
||||||
<packaging>pom</packaging> |
|
||||||
<name>Protobuf Compiler</name> |
|
||||||
<description> |
|
||||||
Protobuf Compiler (protoc) is a compiler for .proto files. It generates |
|
||||||
language-specific code for Protobuf messages and RPC interfaces. |
|
||||||
</description> |
|
||||||
<inceptionYear>2008</inceptionYear> |
|
||||||
<url>https://developers.google.com/protocol-buffers/</url> |
|
||||||
<licenses> |
|
||||||
<license> |
|
||||||
<name>BSD-3-Clause</name> |
|
||||||
<url>https://opensource.org/licenses/BSD-3-Clause</url> |
|
||||||
<distribution>repo</distribution> |
|
||||||
</license> |
|
||||||
</licenses> |
|
||||||
<scm> |
|
||||||
<url>https://github.com/protocolbuffers/protobuf</url> |
|
||||||
<connection> |
|
||||||
scm:git:https://github.com/protocolbuffers/protobuf.git |
|
||||||
</connection> |
|
||||||
</scm> |
|
||||||
<build> |
|
||||||
<plugins> |
|
||||||
<plugin> |
|
||||||
<groupId>org.codehaus.mojo</groupId> |
|
||||||
<artifactId>build-helper-maven-plugin</artifactId> |
|
||||||
<version>1.8</version> |
|
||||||
<executions> |
|
||||||
<execution> |
|
||||||
<id>attach-artifacts</id> |
|
||||||
<phase>package</phase> |
|
||||||
<goals> |
|
||||||
<goal>attach-artifact</goal> |
|
||||||
</goals> |
|
||||||
<configuration> |
|
||||||
<artifacts> |
|
||||||
<artifact> |
|
||||||
<file>${basedir}/target/linux/x86_64/protoc.exe</file> |
|
||||||
<classifier>linux-x86_64</classifier> |
|
||||||
<type>exe</type> |
|
||||||
</artifact> |
|
||||||
<artifact> |
|
||||||
<file>${basedir}/target/linux/x86_32/protoc.exe</file> |
|
||||||
<classifier>linux-x86_32</classifier> |
|
||||||
<type>exe</type> |
|
||||||
</artifact> |
|
||||||
<artifact> |
|
||||||
<file>${basedir}/target/windows/x86_64/protoc.exe</file> |
|
||||||
<classifier>windows-x86_64</classifier> |
|
||||||
<type>exe</type> |
|
||||||
</artifact> |
|
||||||
<artifact> |
|
||||||
<file>${basedir}/target/windows/x86_32/protoc.exe</file> |
|
||||||
<classifier>windows-x86_32</classifier> |
|
||||||
<type>exe</type> |
|
||||||
</artifact> |
|
||||||
<artifact> |
|
||||||
<file>${basedir}/target/osx/x86_64/protoc.exe</file> |
|
||||||
<classifier>osx-x86_64</classifier> |
|
||||||
<type>exe</type> |
|
||||||
</artifact> |
|
||||||
<artifact> |
|
||||||
<file>${basedir}/target/osx/aarch_64/protoc.exe</file> |
|
||||||
<classifier>osx-aarch_64</classifier> |
|
||||||
<type>exe</type> |
|
||||||
</artifact> |
|
||||||
<artifact> |
|
||||||
<file>${basedir}/target/linux/aarch_64/protoc.exe</file> |
|
||||||
<classifier>linux-aarch_64</classifier> |
|
||||||
<type>exe</type> |
|
||||||
</artifact> |
|
||||||
<artifact> |
|
||||||
<file>${basedir}/target/linux/ppcle_64/protoc.exe</file> |
|
||||||
<classifier>linux-ppcle_64</classifier> |
|
||||||
<type>exe</type> |
|
||||||
</artifact> |
|
||||||
<artifact> |
|
||||||
<file>${basedir}/target/linux/s390_64/protoc.exe</file> |
|
||||||
<classifier>linux-s390_64</classifier> |
|
||||||
<type>exe</type> |
|
||||||
</artifact> |
|
||||||
</artifacts> |
|
||||||
</configuration> |
|
||||||
</execution> |
|
||||||
</executions> |
|
||||||
</plugin> |
|
||||||
</plugins> |
|
||||||
</build> |
|
||||||
<profiles> |
|
||||||
<profile> |
|
||||||
<id>release</id> |
|
||||||
<properties> |
|
||||||
<!-- Specify the staging repository to deploy to. This can be left |
|
||||||
empty for the first deployment, and Sonatype will create one. For |
|
||||||
subsequent deployments it should be set to what Sonatype has |
|
||||||
created, so that all deployments will go to the same repository. |
|
||||||
--> |
|
||||||
<staging.repository/> |
|
||||||
</properties> |
|
||||||
<build> |
|
||||||
<plugins> |
|
||||||
<plugin> |
|
||||||
<groupId>org.apache.maven.plugins</groupId> |
|
||||||
<artifactId>maven-gpg-plugin</artifactId> |
|
||||||
<version>1.5</version> |
|
||||||
<executions> |
|
||||||
<execution> |
|
||||||
<id>sign-artifacts</id> |
|
||||||
<phase>verify</phase> |
|
||||||
<goals> |
|
||||||
<goal>sign</goal> |
|
||||||
</goals> |
|
||||||
</execution> |
|
||||||
</executions> |
|
||||||
</plugin> |
|
||||||
<plugin> |
|
||||||
<groupId>org.sonatype.plugins</groupId> |
|
||||||
<artifactId>nexus-staging-maven-plugin</artifactId> |
|
||||||
<version>1.6.3</version> |
|
||||||
<extensions>true</extensions> |
|
||||||
<configuration> |
|
||||||
<serverId>sonatype-nexus-staging</serverId> |
|
||||||
<nexusUrl>https://oss.sonatype.org/</nexusUrl> |
|
||||||
<skipStagingRepositoryClose>true</skipStagingRepositoryClose> |
|
||||||
<autoReleaseAfterClose>false</autoReleaseAfterClose> |
|
||||||
<stagingRepositoryId>${staging.repository}</stagingRepositoryId> |
|
||||||
</configuration> |
|
||||||
</plugin> |
|
||||||
</plugins> |
|
||||||
</build> |
|
||||||
</profile> |
|
||||||
</profiles> |
|
||||||
</project> |
|
@ -1,13 +0,0 @@ |
|||||||
#!/bin/bash |
|
||||||
set -eu -o pipefail |
|
||||||
|
|
||||||
quote() { |
|
||||||
local arg |
|
||||||
for arg in "$@"; do |
|
||||||
printf "'" |
|
||||||
printf "%s" "$arg" | sed -e "s/'/'\\\\''/g" |
|
||||||
printf "' " |
|
||||||
done |
|
||||||
} |
|
||||||
|
|
||||||
exec scl enable devtoolset-2 "$(quote "$@")" |
|
Loading…
Reference in new issue