mirror of
https://github.com/pissnet/pissircd.git
synced 2024-06-05 07:48:44 +01:00
17e2a17e81
Actually I presume 'make install' properly removes the file first before installing a new one, but.. not entirely sure. Better safe than sorry. We have had new reports of someone who had the original UnrealIRCd crash while building the new UnrealIRCd. Similar to what we had a few years ago, which was caused by a 'cp' instead of an rm+cp. This because with simple cp the existing file contents is changed and the processes holding the .so file open (usually mmapped) suddenly have the new .so file loaded in effect, which causes a crash whenever next function is called in that library. We now rm explicit before 'make install' so running processes simply have that fd point to a deleted file, which is fine.
81 lines
1.7 KiB
Bash
Executable file
81 lines
1.7 KiB
Bash
Executable file
#!/bin/sh
|
|
URL="https://www.unrealircd.org/files/curl-latest.tar.gz"
|
|
OUTF="curl-latest.tar.gz"
|
|
OUTD="curl-latest"
|
|
UNREALDIR="`pwd`"
|
|
PRIVATELIBDIR="$1"
|
|
|
|
if [ "x$1" = "x" ]; then
|
|
echo "You should (no longer) run this program directly."
|
|
echo "It will be invoked by ./Config"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f src/parse.c ]; then
|
|
if [ -f ../src/parse.c ]; then
|
|
cd ..
|
|
else
|
|
echo "Please run this program from your UnrealIRCd directory"
|
|
echo "(usually $HOME/unrealircd-5.0.X or something like that)"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
wget --version 1>/dev/null 2>&1
|
|
if [ "$?" = 0 ]; then
|
|
FETCHER="wget"
|
|
else
|
|
fetch --version 1>/dev/null 2>&1
|
|
if [ "$?" = 0 ]; then
|
|
FETCHER="fetch"
|
|
else
|
|
lynx --version 1>/dev/null 2>&1
|
|
if [ "$?" = 0 ]; then
|
|
FETCHER="lynx"
|
|
else
|
|
echo "ERROR: unable to find wget/fetch/lynx, please install at least one of these programs"
|
|
exit 1
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ ! -d tmp ]; then
|
|
mkdir tmp || exit 1
|
|
fi
|
|
|
|
cd tmp || exit 1
|
|
|
|
rm -f "$OUTF"
|
|
|
|
if [ "$FETCHER" = "wget" ]; then
|
|
wget -O "$OUTF" "$URL"
|
|
elif [ "$FETCHER" = "lynx" ]; then
|
|
lynx -dump "$URL" >"$OUTF"
|
|
elif [ "$FETCHER" = "fetch" ]; then
|
|
cd tmp #todo: find out the cmd line parameter ;)
|
|
fetch "$URL"
|
|
fi
|
|
|
|
if [ "$?" != 0 ]; then
|
|
echo "ERROR: Something went wrong while trying to download $URL"
|
|
exit 1
|
|
fi
|
|
|
|
rm -rf "$OUTD" # remove old directory prior to extracting
|
|
tar xzf "$OUTF" || exit 1
|
|
|
|
|
|
if [ "`eval echo -n 'a'`" = "-n a" ] ; then
|
|
c="\c"
|
|
else
|
|
n="-n"
|
|
fi
|
|
|
|
# We assume curl has been packaged in a way it will extract to "$OUTD"/
|
|
cd "$OUTD" || exit 1
|
|
|
|
echo "Building and installing libcurl"
|
|
./configure --prefix=$UNREALDIR/extras/curl --libdir=$PRIVATELIBDIR --enable-shared --with-openssl
|
|
make || exit 1
|
|
rm -f "$PRIVATELIBDIR/"libcurl*
|
|
make install || exit 1
|