undefect. CWE-407 — 63 sites patched across 27 ecosystems
Authors: russell@unturf.com · brackishbert@gmail.com · foxhop.net · TimeHexOn.com Patches, unit tests, benchmarks, whitepaper, and outreach briefs. Public domain — no copyright claimed. Use freely.
This commit is contained in:
commit
0a580b313d
70422 changed files with 17213626 additions and 0 deletions
131
make/devkit/createGraphvizBundle.sh
Normal file
131
make/devkit/createGraphvizBundle.sh
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
# Create a bundle in the current directory, containing what's needed to run
|
||||
# the 'dot' program from the graphviz suite by the OpenJDK build.
|
||||
|
||||
set -eux
|
||||
|
||||
mydir="$(cd -- $(dirname ${BASH_SOURCE[0]}) && pwd)"
|
||||
me="${mydir}/$(basename ${BASH_SOURCE[0]})"
|
||||
|
||||
EXPAT_VERSION="2.6.0"
|
||||
EXPAT_URL="https://github.com/libexpat/libexpat/releases/download/R_${EXPAT_VERSION//./_}/expat-${EXPAT_VERSION}.tar.gz"
|
||||
EXPAT_SHA256="a13447b9aa67d7c860783fdf6820f33ebdea996900d6d8bbc50a628f55f099f7"
|
||||
|
||||
GRAPHVIZ_VERSION="9.0.0"
|
||||
GRAPHVIZ_URL="https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/${GRAPHVIZ_VERSION}/graphviz-${GRAPHVIZ_VERSION}.tar.xz"
|
||||
GRAPHVIZ_SHA256="6c9afda06a732af7658c2619ee713d2545818c3ff19b7b8fd48effcd06d57bf6"
|
||||
|
||||
uname_s="$(uname -s)"
|
||||
case ${uname_s} in
|
||||
Linux)
|
||||
bundle_os="linux"
|
||||
shacmd="sha256sum --strict --check -"
|
||||
lib_path_var="LD_LIBRARY_PATH"
|
||||
;;
|
||||
Darwin)
|
||||
bundle_os="macosx"
|
||||
shacmd="shasum -a 256 --strict --check -"
|
||||
lib_path_var="DYLD_LIBRARY_PATH"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown OS: ${uname_s}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
uname_m="$(uname -m)"
|
||||
case ${uname_m} in
|
||||
aarch64|arm64)
|
||||
bundle_cpu="aarch64"
|
||||
;;
|
||||
x86_64)
|
||||
bundle_cpu="x64"
|
||||
;;
|
||||
esac
|
||||
bundle_platform="${bundle_os}_${bundle_cpu}"
|
||||
|
||||
build_dir="${mydir}/../../build/graphviz"
|
||||
download_dir="${build_dir}/download"
|
||||
install_dir="${build_dir}/result/graphviz-${bundle_platform}-${GRAPHVIZ_VERSION}"
|
||||
bundle_file="${install_dir}.tar.gz"
|
||||
|
||||
expat_dir="${build_dir}/expat"
|
||||
expat_src_dir="${expat_dir}/src"
|
||||
|
||||
graphviz_dir="${build_dir}/graphviz"
|
||||
graphviz_src_dir="${graphviz_dir}/src"
|
||||
graphviz_doc_dir="${install_dir}/doc"
|
||||
|
||||
mkdir -p "${build_dir}"
|
||||
cd "${build_dir}"
|
||||
|
||||
download_and_unpack() {
|
||||
local url="$1"
|
||||
local sha256="$2"
|
||||
local file="$3"
|
||||
local dir="$4"
|
||||
|
||||
mkdir -p "$(dirname "${file}")"
|
||||
if [ ! -f "${file}" ]; then
|
||||
curl -L -o "${file}" "${url}"
|
||||
fi
|
||||
echo "${sha256} ${file}" | ${shacmd}
|
||||
if [ ! -d "${dir}" ]; then
|
||||
mkdir -p "${dir}"
|
||||
tar --extract --file "${file}" --directory "${dir}" --strip-components 1
|
||||
fi
|
||||
}
|
||||
|
||||
download_and_unpack "${EXPAT_URL}" "${EXPAT_SHA256}" "${download_dir}/expat.tar.gz" "${expat_src_dir}"
|
||||
download_and_unpack "${GRAPHVIZ_URL}" "${GRAPHVIZ_SHA256}" "${download_dir}/graphviz.tar.gz" "${graphviz_src_dir}"
|
||||
|
||||
(
|
||||
cd "${expat_src_dir}"
|
||||
./configure --prefix="${install_dir}"
|
||||
make -j install
|
||||
)
|
||||
|
||||
(
|
||||
cd "${graphviz_src_dir}"
|
||||
./configure --prefix="${install_dir}" EXPAT_CFLAGS="-I${install_dir}/include" EXPAT_LIBS="-L${install_dir}/lib -lexpat"
|
||||
make -j install
|
||||
)
|
||||
|
||||
cat > "${install_dir}/dot" << EOF
|
||||
#!/bin/bash
|
||||
# Get an absolute path to this script
|
||||
this_script_dir="\$(dirname \$0)"
|
||||
this_script_dir="\$(cd \${this_script_dir} > /dev/null && pwd)"
|
||||
export ${lib_path_var}="\${this_script_dir}/lib:\${this_script_dir}/lib/graphviz"
|
||||
exec "\${this_script_dir}/bin/dot" "\$@"
|
||||
EOF
|
||||
chmod +x "${install_dir}/dot"
|
||||
# create config file
|
||||
"${install_dir}/dot" -c
|
||||
|
||||
cp "${me}" "${install_dir}"
|
||||
|
||||
tar --create --gzip --file "${bundle_file}" -C "${install_dir}" .
|
||||
Loading…
Add table
Add a link
Reference in a new issue