mirror of
https://github.com/BurntSushi/ripgrep.git
synced 2024-12-12 19:18:24 +02:00
5e81c60b35
Previously, I was trying to be a good citizen and let ripgrep use the system libc. But it turns out that building ripgrep on Arch with a newer version of glibc than what is in Ubuntu results in the whole thing breaking. Arguably, I should build the Debian artifact on an Ubuntu or Debian machine of an appropriate version, but that's too much work. If people really want that, then they can install some ancient version of ripgrep from their Ubuntu/Debian repo. Since we were already statically linking PCRE2, we go the whole nine yards and statically link the entire thing. Fixes #1890
43 lines
1.4 KiB
Bash
Executable File
43 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
D="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
|
|
|
# This script builds a binary dpkg for Debian based distros. It does not
|
|
# currently run in CI, and is instead run manually and the resulting dpkg is
|
|
# uploaded to GitHub via the web UI.
|
|
#
|
|
# Note that this requires 'cargo deb', which can be installed with
|
|
# 'cargo install cargo-deb'.
|
|
#
|
|
# This should be run from the root of the ripgrep repo.
|
|
|
|
if ! command -V cargo-deb > /dev/null 2>&1; then
|
|
echo "cargo-deb command missing" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -V asciidoctor > /dev/null 2>&1; then
|
|
echo "asciidoctor command missing" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# 'cargo deb' does not seem to provide a way to specify an asset that is
|
|
# created at build time, such as ripgrep's man page. To work around this,
|
|
# we force a debug build, copy out the man page (and shell completions)
|
|
# produced from that build, put it into a predictable location and then build
|
|
# the deb, which knows where to look.
|
|
cargo build
|
|
|
|
DEPLOY_DIR=deployment/deb
|
|
OUT_DIR="$("$D"/cargo-out-dir target/debug/)"
|
|
mkdir -p "$DEPLOY_DIR"
|
|
|
|
# Copy man page and shell completions.
|
|
cp "$OUT_DIR"/{rg.1,rg.bash,rg.fish} "$DEPLOY_DIR/"
|
|
cp complete/_rg "$DEPLOY_DIR/"
|
|
|
|
# Since we're distributing the dpkg, we don't know whether the user will have
|
|
# PCRE2 installed, so just do a static build.
|
|
PCRE2_SYS_STATIC=1 cargo deb --target x86_64-unknown-linux-musl
|