File: meson-dist-script.sh

package info (click to toggle)
pdns-recursor 5.3.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 11,116 kB
  • sloc: cpp: 109,672; javascript: 20,651; python: 5,657; sh: 5,114; makefile: 782; ansic: 582; xml: 37
file content (74 lines) | stat: -rwxr-xr-x 3,403 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/sh -e

echo Running meson-dist-script
export CARGO="${CARGO:-$_defaultCARGO}"

echo PWD=$(pwd)
echo MESON_SOURCE_ROOT=$MESON_SOURCE_ROOT
echo MESON_PROJECT_DIST_ROOT=$MESON_PROJECT_DIST_ROOT
echo CARGO=$CARGO

if [ -z "${BUILDER_VERSION}" ]; then
    echo "BUILDER_VERSION is not set" >&2
    exit 1
fi

if [ -z "${CARGO}" ]; then
    echo PATH=$PATH
    ls -l /usr/bin/cargo
    export CARGO=/usr/bin/cargo
    #exit 1
fi

cd "$MESON_PROJECT_DIST_ROOT"

# Get all symlinks
symlinks=$(find . -type l)

# If these two get out-of-sync, fix it! It used to be a symlink but that can no longer be as we are
# working with a partial checkout in the dist root dir.
cmp "$MESON_SOURCE_ROOT"/../../builder-support/gen-version "$MESON_PROJECT_DIST_ROOT"/builder-support/gen-version

# Get the dereffed symbolic links (the actual files being pointed to) from the source dir
# Extract them over the existing symbolic links
tar -C "$MESON_SOURCE_ROOT" -hcf - $symlinks | tar -xf - -C "$MESON_PROJECT_DIST_ROOT"

# Run autoconf for people using autotools to build, this creates a configure script with VERSION set
# set the proper version in configure.ac
"$MESON_SOURCE_ROOT"/../../builder/helpers/set-configure-ac-version.sh
echo Running autoreconf -vi so distfile is still usable for autotools building
# Run autoconf for people using autotools to build, this creates a configure sc
autoreconf -vi
rm -rf "$MESON_PROJECT_DIST_ROOT"/autom4te.cache
echo Updating the version of the Rust library to ${BUILDER_VERSION}
"$MESON_SOURCE_ROOT"/../../builder-support/helpers/update-rust-library-version.py "$MESON_PROJECT_DIST_ROOT"/rec-rust-lib/rust/Cargo.toml recrust ${BUILDER_VERSION}

cd "$MESON_PROJECT_BUILD_ROOT"

# Generate  a few files to reduce build dependencies
echo 'If the below command generates an error, remove dnslabeltext.cc from source dir (remains of an autotools build?) and start again with a clean meson setup'
ninja librec-dnslabeltext.a.p/dnslabeltext.cc
cp -vp librec-dnslabeltext.a.p/dnslabeltext.cc "$MESON_PROJECT_DIST_ROOT"
echo 'If the below command generates an error, remove effective_tld_names.dat and pubsuffix.cc from source dir (remains of an autotools build?) and start again with a clean meson setup'
ninja pubsuffix.cc
cp -vp pubsuffix.cc "$MESON_PROJECT_DIST_ROOT"

# Generate the sources for our Rust-based library, lib.rs is needed by a pre-configure step on some build systems
meson compile rec-rust-sources
cp -vp "$MESON_SOURCE_ROOT"/rec-rust-lib/rust/src/lib.rs "$MESON_PROJECT_DIST_ROOT"/rec-rust-lib/rust/src/

echo Updating the version of the Rust library to ${BUILDER_VERSION}
"$MESON_SOURCE_ROOT"/../../builder-support/helpers/update-rust-library-version.py "$MESON_PROJECT_DIST_ROOT"/rec-rust-lib/rust/Cargo.toml recrust ${BUILDER_VERSION}
# Update the version of the Rust library in Cargo.lock as well,
# This needs to be done AFTER the sources of the Rust library have been generated
# Unfortunately we cannot use --offline because for some reason cargo-update wants
# to check all dependencies even though we are telling it exactly what to update
cd "$MESON_PROJECT_DIST_ROOT"/rec-rust-lib/rust/
ls -l /usr/bin/cargo
echo $CARGO update --verbose --precise ${BUILDER_VERSION} recrust
$CARGO update --verbose --precise ${BUILDER_VERSION} recrust
cd "$MESON_PROJECT_BUILD_ROOT"

# Generate man pages
meson compile man-pages
cp -vp *.1 "$MESON_PROJECT_DIST_ROOT"