make/devkit/createPandocBundle.sh
author dholmes
Thu, 01 Jun 2017 02:21:18 +0000 (2017-06-01)
changeset 46511 4a5b7a2dd783
parent 44734 70bbd6884287
child 52714 2e52aa822c57
child 57009 41a309ceb98c
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44734
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
     1
#!/bin/bash -e
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
     2
#
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
     3
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
     4
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
     5
#
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
     6
# This code is free software; you can redistribute it and/or modify it
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
     7
# under the terms of the GNU General Public License version 2 only, as
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
     8
# published by the Free Software Foundation.  Oracle designates this
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
     9
# particular file as subject to the "Classpath" exception as provided
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    10
# by Oracle in the LICENSE file that accompanied this code.
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    11
#
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    12
# This code is distributed in the hope that it will be useful, but WITHOUT
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    13
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    14
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    15
# version 2 for more details (a copy is included in the LICENSE file that
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    16
# accompanied this code).
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    17
#
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    18
# You should have received a copy of the GNU General Public License version
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    19
# 2 along with this work; if not, write to the Free Software Foundation,
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    20
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    21
#
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    22
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    23
# or visit www.oracle.com if you need additional information or have any
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    24
# questions.
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    25
#
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    26
# Create a bundle in the current directory, containing what's needed to run
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    27
# the 'pandoc' program by the OpenJDK build.
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    28
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    29
TMPDIR=`mktemp -d -t pandocbundle-XXXX`
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    30
trap "rm -rf \"$TMPDIR\"" EXIT
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    31
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    32
ORIG_DIR=`pwd`
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    33
cd "$TMPDIR"
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    34
PANDOC_VERSION=1.17.2
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    35
FULL_PANDOC_VERSION=1.17.2-1
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    36
PACKAGE_VERSION=1.0
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    37
TARGET_PLATFORM=linux_x64
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    38
BUNDLE_NAME=pandoc-$TARGET_PLATFORM-$PANDOC_VERSION+$PACKAGE_VERSION.tar.gz
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    39
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    40
wget https://github.com/jgm/pandoc/releases/download/$PANDOC_VERSION/pandoc-$FULL_PANDOC_VERSION-amd64.deb
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    41
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    42
mkdir pandoc
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    43
cd pandoc
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    44
ar p ../pandoc-$FULL_PANDOC_VERSION-amd64.deb data.tar.gz | tar xz
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    45
cd ..
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    46
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    47
# Pandoc depends on libgmp.so.10, which in turn depends on libc. No readily
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    48
# available precompiled binaries exists which match the requirement of
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    49
# support for older linuxes (glibc 2.12), so we'll compile it ourselves.
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    50
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    51
LIBGMP_VERSION=6.1.2
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    52
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    53
wget https://gmplib.org/download/gmp/gmp-$LIBGMP_VERSION.tar.xz
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    54
mkdir gmp
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    55
cd gmp
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    56
tar xf ../gmp-$LIBGMP_VERSION.tar.xz
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    57
cd gmp-$LIBGMP_VERSION
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    58
./configure --prefix=$TMPDIR/pandoc/usr
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    59
make
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    60
make install
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    61
cd ../..
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    62
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    63
cat > pandoc/pandoc << EOF
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    64
#!/bin/bash
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    65
# Get an absolute path to this script
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    66
this_script_dir=\`dirname \$0\`
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    67
this_script_dir=\`cd \$this_script_dir > /dev/null && pwd\`
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    68
export LD_LIBRARY_PATH="\$this_script_dir/usr/lib:\$LD_LIBRARY_PATH"
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    69
exec \$this_script_dir/usr/bin/pandoc "\$@"
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    70
EOF
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    71
chmod +x pandoc/pandoc
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    72
tar -cvzf ../$BUNDLE_NAME pandoc
70bbd6884287 8179022: Add serialization spec as markdown
ihse
parents:
diff changeset
    73
cp ../$BUNDLE_NAME "$ORIG_DIR"