author | František Kučera <franta-hg@frantovo.cz> |
Sat, 08 May 2021 21:33:15 +0200 | |
branch | v_0 |
changeset 322 | 060d2590e77c |
parent 319 | relpipe-data/examples/release-v0.17.1.sh@2a5f26e69a76 |
child 323 | e2d607e4a4f4 |
permissions | -rw-r--r-- |
219 | 1 |
# Install dependencies as root: |
322
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
2 |
if [[ "$USER" == "root" ]]; then |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
3 |
apt install g++ make cmake mercurial pkg-config |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
4 |
apt install libxerces-c-dev # needed only for relpipe-in-xml module |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
5 |
apt install guile-2.2-dev # needed only for relpipe-tr-scheme module |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
6 |
apt install gawk # needed only for relpipe-tr-awk module |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
7 |
apt install libxml++2.6-dev # needed only for relpipe-in-xmltable module |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
8 |
apt install unixodbc-dev # needed only for relpipe-tr-sql module |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
9 |
apt install libsqliteodbc # needed only for relpipe-tr-sql module if used with SQLite |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
10 |
apt install odbc-postgresql # needed only for relpipe-tr-sql module if used with PostgreSQL |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
11 |
apt install libjack-jackd2-dev # needed only for relpipe-in-jack and relpipe-out-jack modules; Jack1 should also work |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
12 |
apt install libxi-dev libxtst-dev # needed only for relpipe-in-x11 and relpipe-out-x11 |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
13 |
apt install libzbar-dev libmagick++-dev # needed only for relpipe-in-barcode and the barcode-reader streamlet |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
14 |
apt install libgumbo-dev # needed only for relpipe-in-htmltable |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
15 |
apt install libyaml-dev # needed only for relpipe-in-yaml, relpipe-in-yamltable, relpipe-in-json and relpipe-in-jsontable |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
16 |
exit; |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
17 |
fi |
219 | 18 |
|
19 |
# Run rest of installation as a non-root user: |
|
322
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
20 |
export RELPIPE_VERSION="v0.18" |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
21 |
export RELPIPE_VERSION="tip" # FIXME: v0.18 |
219 | 22 |
export RELPIPE_SRC=~/src |
23 |
export RELPIPE_BUILD=~/build |
|
24 |
export RELPIPE_INSTALL=~/install |
|
25 |
export PKG_CONFIG_PATH="$RELPIPE_INSTALL/lib/pkgconfig/:$PKG_CONFIG_PATH" |
|
26 |
export PATH="$RELPIPE_INSTALL/bin:$PATH" |
|
27 |
||
241 | 28 |
rm -rf "$RELPIPE_BUILD"/relpipe-* |
29 |
mkdir -p "$RELPIPE_SRC" "$RELPIPE_BUILD" "$RELPIPE_INSTALL" |
|
219 | 30 |
|
31 |
# Helper functions: |
|
241 | 32 |
relpipe_download() { for m in "$@"; do cd "$RELPIPE_SRC" && ([[ -d "relpipe-$m.cpp" ]] && hg pull -R "relpipe-$m.cpp" && hg update -R "relpipe-$m.cpp" "$RELPIPE_VERSION" || hg clone -u "$RELPIPE_VERSION" https://hg.globalcode.info/relpipe/relpipe-$m.cpp) || break; done; } |
33 |
relpipe_install() { for m in "$@"; do cd "$RELPIPE_BUILD" && mkdir -p relpipe-$m.cpp && cd relpipe-$m.cpp && cmake -DCMAKE_INSTALL_PREFIX:PATH="$RELPIPE_INSTALL" "$RELPIPE_SRC/relpipe-$m.cpp" && make && make install || break; done; } |
|
219 | 34 |
|
322
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
35 |
RELPIPE_LIBS=(lib-common lib-reader lib-writer lib-cli lib-xmlwriter) |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
36 |
RELPIPE_TOOLS=(in-cli in-fstab in-xml in-xmltable in-csv in-filesystem in-recfile out-gui.qt out-nullbyte out-ods out-tabular out-xml out-csv out-asn1 out-recfile tr-cut tr-grep tr-python tr-sed tr-validator tr-scheme tr-awk tr-sql in-jack out-jack) |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
37 |
RELPIPE_TOOLS+=(in-asn1table in-barcode in-htmltable in-ini in-initable in-json in-jsontable in-mimetable in-x11 in-yaml in-yamltable out-ini out-x11 out-xml out-yaml tr-xpath) # since v0.18 |
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
38 |
|
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
39 |
|
219 | 40 |
# Download all sources: |
322
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
41 |
relpipe_download "${RELPIPE_LIBS[@]}" "${RELPIPE_TOOLS[@]}" |
250 | 42 |
|
43 |
# Optional: At this point, we have all dependencies and sources downloaded, so we can disconnect this computer from the internet in order to verify that our build process is sane, deterministic and does not depend on any external resources. |
|
219 | 44 |
|
45 |
# Build and install libraries: |
|
322
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
46 |
relpipe_install "${RELPIPE_LIBS[@]}" |
219 | 47 |
|
48 |
# Build and install tools: |
|
322
060d2590e77c
first version of release-v0.18.sh
František Kučera <franta-hg@frantovo.cz>
parents:
319
diff
changeset
|
49 |
relpipe_install "${RELPIPE_TOOLS[@]}" |
219 | 50 |
|
282
ec02133045a3
Release v0.14 – SQL, AWK, Bash completion, GPLv3
František Kučera <franta-hg@frantovo.cz>
parents:
264
diff
changeset
|
51 |
# Load Bash completion scripts: |
ec02133045a3
Release v0.14 – SQL, AWK, Bash completion, GPLv3
František Kučera <franta-hg@frantovo.cz>
parents:
264
diff
changeset
|
52 |
for c in "$RELPIPE_SRC"/relpipe-*/bash-completion.sh ; do . "$c"; done |
ec02133045a3
Release v0.14 – SQL, AWK, Bash completion, GPLv3
František Kučera <franta-hg@frantovo.cz>
parents:
264
diff
changeset
|
53 |
|
294
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
54 |
# Enable streamlet examples: |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
55 |
export RELPIPE_IN_FILESYSTEM_STREAMLET_PATH="$RELPIPE_SRC"/relpipe-in-filesystem.cpp/streamlet-examples/ |
abbc9bcfbcc4
Release v0.15 – streamlets, parallel processing
František Kučera <franta-hg@frantovo.cz>
parents:
282
diff
changeset
|
56 |
|
219 | 57 |
# Clean-up: |
58 |
unset -f relpipe_install |
|
59 |
unset -f relpipe_download |
|
60 |
unset -v RELPIPE_VERSION |
|
61 |
unset -v RELPIPE_SRC |
|
62 |
unset -v RELPIPE_BUILD |
|
63 |
unset -v RELPIPE_INSTALL |
|
64 |
||
317
fce3d6290c40
Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
297
diff
changeset
|
65 |
# List available JACK ports (the JACK daemon should be running): |
fce3d6290c40
Release v0.16 – JACK MIDI output, ports + rename Guile to Scheme + improve CLI interfaces
František Kučera <franta-hg@frantovo.cz>
parents:
297
diff
changeset
|
66 |
relpipe-in-jack --list-ports true --list-midi-messages false | relpipe-out-tabular |