poikilos
6 years ago
committed by
Jacob Gustafson
4 changed files with 358 additions and 5 deletions
@ -0,0 +1,138 @@ |
|||||
|
#!/bin/bash |
||||
|
enable_postgres="false" |
||||
|
enable_redis="false" |
||||
|
if [ "$1" = "redis" ]; then enable_redis="true"; fi |
||||
|
if [ "$2" = "redis" ]; then enable_redis="true"; fi |
||||
|
if [ "$3" = "redis" ]; then enable_redis="true"; fi |
||||
|
if [ "$1" = "postgres" ]; then enable_postgres="true"; fi |
||||
|
if [ "$2" = "postgres" ]; then enable_postgres="true"; fi |
||||
|
if [ "$3" = "postgres" ]; then enable_postgres="true"; fi |
||||
|
#if [ -f "`command -v minetest`" ]; then |
||||
|
#echo "* trying to remove any non-git (packaged) version first (Press Ctrl C to cancel)..." |
||||
|
luajit_path="/usr/include/luajit-2.1" |
||||
|
ext_lua="" |
||||
|
#fi |
||||
|
sleep 1 |
||||
|
echo "3..." |
||||
|
sleep 1 |
||||
|
echo "2..." |
||||
|
sleep 1 |
||||
|
echo "1..." |
||||
|
sleep 1 |
||||
|
echo |
||||
|
this_dnf="" |
||||
|
if [ -f "`command -v dnf`" ]; then |
||||
|
this_dnf = "dnf" |
||||
|
else |
||||
|
if [ -f "`command -v yum`" ]; then |
||||
|
this_dnf = "yum" |
||||
|
echo "WARNING: dnf not found, reverting to yum." |
||||
|
fi |
||||
|
fi |
||||
|
this_apt="" |
||||
|
if [ -f "`command -v apt`" ]; then |
||||
|
this_apt = "apt" |
||||
|
else |
||||
|
if [ -f "`command -v apt-get`" ]; then |
||||
|
this_apt = "apt-get" |
||||
|
echo "WARNING: apt not found, reverting to apt-get." |
||||
|
fi |
||||
|
fi |
||||
|
|
||||
|
if [ ! -z "$this_apt" ]; then |
||||
|
# sudo $this_apt -y remove minetest-server |
||||
|
# sudo $this_apt -y remove minetest |
||||
|
sudo $this_apt update |
||||
|
sudo $this_apt -y install \ |
||||
|
autoconf automake autopoint autotools-dev \ |
||||
|
bash binutils bison bzip2 \ |
||||
|
cmake coreutils e2fsprogs expat \ |
||||
|
flex fontconfig g++ gawk \ |
||||
|
gcc gettext git g++-multilib \ |
||||
|
gperf grep gzip htop \ |
||||
|
icu-devtools intltool joe less \ |
||||
|
libbz2-dev libc6-dev-i386 libedit-dev libexpat1-dev \ |
||||
|
libgmp-dev libjpeg-dev libltdl-dev libncurses5-dev \ |
||||
|
libogg-dev libopenal-dev libpng-dev libreadline-dev \ |
||||
|
libsqlite3-dev libssl-dev libtool libtool-bin \ |
||||
|
libvorbis-dev libx11-dev libxxf86vm-dev lynx \ |
||||
|
nano nettle-dev p7zip-full patch \ |
||||
|
perl pkg-config python3 python3-dev \ |
||||
|
python-dev rake ruby sed \ |
||||
|
tar tcl unzip util-linux \ |
||||
|
wget xz-utils zip \ |
||||
|
\ |
||||
|
libcurl4-openssl-dev \ |
||||
|
libfreetype6-dev \ |
||||
|
libgdk-pixbuf2.0-dev \ |
||||
|
libglu1-mesa-dev \ |
||||
|
libxml-parser-perl \ |
||||
|
xserver-xorg-dev |
||||
|
|
||||
|
|
||||
|
if [ "$enable_redis" = "true" ]; then |
||||
|
sudo $this_apt -y install libhiredis-dev |
||||
|
fi |
||||
|
if [ "$enable_postgres" = "true" ]; then |
||||
|
sudo $this_apt -y install libpq-dev postgresql-server-dev-all |
||||
|
fi |
||||
|
|
||||
|
# Some issues on Fedora ~27: |
||||
|
# sudo apt -y install libncurses5-dev libgettextpo-dev doxygen libspatialindex-dev libpq-dev postgresql-server-dev-all |
||||
|
# if you skip the above, the next step says missing: GetText, Curses, ncurses, Redis, SpatialIndex, Doxygen |
||||
|
|
||||
|
|
||||
|
elif [ -f "`command -v pacman`" ]; then |
||||
|
# sudo pacman -R --noconfirm minetest-server |
||||
|
# sudo pacman -R --noconfirm minetest |
||||
|
sudo pacman -Syu --noconfirm \ |
||||
|
autoconf automake bzip2 cmake \ |
||||
|
curl expat flex freetype2 \ |
||||
|
gcc git gmp libedit \ |
||||
|
libgccjit libjpeg-turbo libogg libpng \ |
||||
|
libstdc++5 libtool libvorbis make \ |
||||
|
ncurses openal openssl patch \ |
||||
|
pkgconf python python2 readline \ |
||||
|
ruby tcl which xorg-server \ |
||||
|
xz zlib |
||||
|
# The above should work since taken from the build kit instructions |
||||
|
# (When writing my old script, I somehow couldn't find equivalents of: |
||||
|
# libjpeg8-dev libxxf86vm-dev mesa sqlite libogg vorbis -poikilos) |
||||
|
if [ "$enable_redis" = "true" ]; then |
||||
|
sudo pacman -Syu --noconfirm hiredis redis |
||||
|
fi |
||||
|
if [ "$enable_postgres" = "true" ]; then |
||||
|
sudo pacman -Syu --noconfirm postgresql-libs |
||||
|
fi |
||||
|
|
||||
|
elif [ ! -z "$this_dnf" ]; then |
||||
|
# sudo $this_dnf -y remove minetest-server |
||||
|
# sudo $this_dnf -y remove minetest |
||||
|
sudo $this_dnf -y install \ |
||||
|
autoconf automake bzip2 \ |
||||
|
bzip2-devel cmake expat-devel \ |
||||
|
flex fontconfig-devel freetype-devel \ |
||||
|
gcc gcc-c++ git \ |
||||
|
glibc-devel gmp-devel libcurl-devel \ |
||||
|
libedit-devel libgcc libjpeg-devel \ |
||||
|
libogg-devel libpng-devel libstdc++-devel \ |
||||
|
libtool libvorbis-devel libX11-devel \ |
||||
|
lzo-devel make ncurses-devel \ |
||||
|
openal-soft-devel openssl-devel patch \ |
||||
|
pkgconf readline-devel ruby \ |
||||
|
tcl which xz \ |
||||
|
zlib-devel xorg-x11-server-devel |
||||
|
|
||||
|
if [ "$enable_redis" = "true" ]; then |
||||
|
sudo $this_dnf -y install redis hiredis-devel |
||||
|
fi |
||||
|
if [ "$enable_postgres" = "true" ]; then |
||||
|
sudo $this_dnf -y install postgresql-devel |
||||
|
fi |
||||
|
|
||||
|
else |
||||
|
# echo "WARNING: cannot remove packaged version, because your package manager is not known by this script." |
||||
|
echo "WARNING: cannot Install dependencies, because your package manager is not known by this script." |
||||
|
exit 1 |
||||
|
fi |
||||
|
|
@ -0,0 +1,210 @@ |
|||||
|
#!/bin/bash |
||||
|
# The git repo ONLY includes the core engine: http://localhost:3000/minetest/minetest.git |
||||
|
# The build kit should be used, & has "patched Irrlicht, the new LuaJit, built-in LevelDB and Snappy support, Bucket Game, Bucket City, Wonder World, the schems collection, and other pieces" |
||||
|
msg="Installing minetestserver ONLY (no param specified). If you want to install the client on your server (not normal practice) or are on a computer with a graphical desktop, add client or both param when calling this script." |
||||
|
warnings="" |
||||
|
enable_postgres=false |
||||
|
enable_redis=false |
||||
|
MAKEDEBUG=false |
||||
|
TIDYUP=true |
||||
|
postgresql_line="-DENABLE_POSTGRESQL=0" |
||||
|
redis_line="-DENABLE_REDIS=0" |
||||
|
server_line="-DBUILD_SERVER=1" |
||||
|
client_line="-DBUILD_CLIENT=1" |
||||
|
#build_what="-DBUILD_SERVER=1 -DBUILD_CLIENT=1" |
||||
|
|
||||
|
for var in "$@" |
||||
|
do |
||||
|
if [ "$var" == "--remove-release" ]; then |
||||
|
if [ ! -f git_flag ]; then |
||||
|
if [ -d minetest ]; then |
||||
|
rm -fr minetest |
||||
|
fi |
||||
|
fi |
||||
|
fi |
||||
|
done |
||||
|
|
||||
|
force_enable_server=false |
||||
|
force_enable_client=false |
||||
|
|
||||
|
for var in "$@" |
||||
|
do |
||||
|
if [ "$var" == "--postgres" ]; then |
||||
|
enable_postgres=true |
||||
|
postgresql_line="-DENABLE_POSTGRESQL=1" |
||||
|
elif [ "$var" == "--redis" ]; then |
||||
|
enable_redis=true |
||||
|
redis_line="-DENABLE_REDIS=1" |
||||
|
elif [ "$var" == "--server" ]; then |
||||
|
server_line="-DBUILD_SERVER=1" |
||||
|
if [ "$force_enable_client" = "false" ]; then |
||||
|
client_line="-DBUILD_CLIENT=0" |
||||
|
fi |
||||
|
force_enable_server=true |
||||
|
#build_what="-DBUILD_SERVER=on -DBUILD_CLIENT=off" |
||||
|
elif [ "$var" == "--client" ]; then |
||||
|
if [ "$force_enable_server" = "false" ]; then |
||||
|
server_line="-DBUILD_SERVER=0" |
||||
|
fi |
||||
|
client_line="-DBUILD_CLIENT=1" |
||||
|
force_enable_client=true |
||||
|
#build_what="-DBUILD_SERVER=off -DBUILD_CLIENT=on" |
||||
|
elif [ "$var" == "--no-tidyup" ]; then |
||||
|
TIDYUP=false |
||||
|
elif [ "$var" == "--git" ]; then |
||||
|
touch git_flag |
||||
|
if [ ! -d minetest ]; then |
||||
|
git clone http://localhost:3000/minetest/minetest.git |
||||
|
else |
||||
|
cd minetest |
||||
|
git pull |
||||
|
cd .. |
||||
|
fi |
||||
|
elif [ "$var" == "--debug" ]; then |
||||
|
MAKEDEBUG=true |
||||
|
fi |
||||
|
done |
||||
|
|
||||
|
echo "Backends:" |
||||
|
echo "* leveldb (by default)" |
||||
|
echo "* sqlite3 (by default)" |
||||
|
if [ "$enable_redis" = "true" ]; then |
||||
|
echo "* redis" |
||||
|
else |
||||
|
echo " (skipping redis--not used by default in this version)" |
||||
|
fi |
||||
|
if [ "$enable_postgres" = "true" ]; then |
||||
|
echo "* postgres" |
||||
|
else |
||||
|
echo " (skipping postgresql--not used by default in this version)" |
||||
|
fi |
||||
|
|
||||
|
if [ "$1" = "both" ]; then |
||||
|
msg="Installing minetest client AND server (param specified: both)." |
||||
|
elif [ "$1" = "client" ]; then |
||||
|
msg="Installing minetest client ONLY (param specified: client)." |
||||
|
else |
||||
|
if [ ! -z "$XDG_CURRENT_DESKTOP" ]; then |
||||
|
warnings="WARNING: Detected $XDG_CURRENT_DESKTOP...you probably meant to install client or both (use client or both param after this script)" |
||||
|
fi |
||||
|
fi |
||||
|
echo $msg |
||||
|
echo $warnings |
||||
|
echo |
||||
|
echo |
||||
|
if [ ! -z "$warnings" ]; then |
||||
|
echo "You may want to cancel and correct warnings above..." |
||||
|
echo "(If you do not press Ctrl C, install will continue anyway)" |
||||
|
echo "3..." |
||||
|
sleep 1 |
||||
|
echo "2..." |
||||
|
sleep 1 |
||||
|
echo "1..." |
||||
|
sleep 1 |
||||
|
fi |
||||
|
|
||||
|
cd |
||||
|
if [ ! -d "Downloads" ]; then |
||||
|
mkdir Downloads |
||||
|
fi |
||||
|
cd Downloads |
||||
|
#if [ -d minetest ]; then |
||||
|
#echo "ERROR: Nothing done since 'minetest' already exists in `pwd`--delete it before cloning, or run the included update script to update." |
||||
|
#echo "Ctrl C or this window will exit..." |
||||
|
#echo "3..." |
||||
|
#sleep 1 |
||||
|
#echo "2..." |
||||
|
#sleep 1 |
||||
|
#echo "1..." |
||||
|
#sleep 1 |
||||
|
#cd minetest |
||||
|
#else |
||||
|
zip_name="linux-minetest-kit.zip" |
||||
|
extracted_name="linux-minetest-kit" |
||||
|
wget -O $zip_name https://downloads.minetest.org/$zip_name |
||||
|
if [ ! -f "$zip_name" ]; then |
||||
|
echo "ERROR: Nothing done since $zip_name could not be downloaded." |
||||
|
exit 1 |
||||
|
fi |
||||
|
|
||||
|
unzip -u "$zip_name" |
||||
|
# -o overwrite non-interactively |
||||
|
# -u update files, create if necessary |
||||
|
|
||||
|
if [ ! -d "$extracted_name" ]; then |
||||
|
echo "ERROR: Nothing done since after extracting $zip_name, there is" |
||||
|
echo " still no directory: $extracted_name" |
||||
|
exit 2 |
||||
|
fi |
||||
|
|
||||
|
cd "$extracted_name" |
||||
|
|
||||
|
bash -e mtcompile-libraries.sh build >& libraries.log |
||||
|
bash -e mtcompile-program.sh build >& program.log |
||||
|
|
||||
|
exit 0 |
||||
|
|
||||
|
if [ ! -d minetest ]; then |
||||
|
git clone https://github.com/minetest/minetest.git |
||||
|
cd minetest |
||||
|
else |
||||
|
cd minetest |
||||
|
echo "updating: `pwd`" |
||||
|
git pull # --all # see https://forum.minetest.net/viewtopic.php?f=42&t=3837&start=125#p306449 |
||||
|
fi |
||||
|
cd games |
||||
|
if [ ! -d minetest_game ]; then |
||||
|
git clone https://github.com/minetest/minetest_game.git |
||||
|
else |
||||
|
cd minetest_game |
||||
|
echo "updating: `pwd`" |
||||
|
git pull # --all |
||||
|
cd .. |
||||
|
fi |
||||
|
#(does nothing since currently in games folder) git pull --all |
||||
|
#echo "in: `pwd`" |
||||
|
cd .. |
||||
|
#echo "in: `pwd`" |
||||
|
#echo "..." |
||||
|
#sleep 10 |
||||
|
# heavily modified from forum url above due to hints from AUR files obtained via git clone https://aur.archlinux.org/minetest-git-leveldb.git |
||||
|
echo "ENABLE_CURSES enables server-side terminal via --terminal option" |
||||
|
build_what="-DBUILD_SERVER=on -DBUILD_CLIENT=off" |
||||
|
if [ "$1" = "both" ]; then |
||||
|
build_what="-DBUILD_SERVER=on -DBUILD_CLIENT=on" |
||||
|
echo "Building minetest and minetestserver (only)..." |
||||
|
elif [ "$1" = "client" ]; then |
||||
|
build_what="-DBUILD_SERVER=off -DBUILD_CLIENT=on" |
||||
|
echo "Building minetest CLIENT (only)..." |
||||
|
else |
||||
|
echo "Building minetestserver..." |
||||
|
fi |
||||
|
|
||||
|
echo "3..." |
||||
|
sleep 1 |
||||
|
echo "2..." |
||||
|
sleep 1 |
||||
|
echo "1..." |
||||
|
sleep 1 |
||||
|
cmake .$ext_lua -DENABLE_GETTEXT=on -DENABLE_CURSES=on -DENABLE_FREETYPE=on -DENABLE_LEVELDB=on -DENABLE_CURL=on -DENABLE_GETTEXT=on -DENABLE_REDIS=on -DENABLE_POSTGRESQL=on -DRUN_IN_PLACE=off -DCMAKE_BUILD_TYPE=Release $build_what |
||||
|
# NOTE: as long as -DRUN_IN_PLACE=off, above installs correctly without -DCMAKE_INSTALL_PREFIX=/usr which for some reason is used by https://aur.archlinux.org/minetest-git.git |
||||
|
# -DCMAKE_BUILD_TYPE=Release as per https://aur.archlinux.org/minetest-git.git |
||||
|
make -j$(nproc) |
||||
|
sudo make install |
||||
|
if [ -f "`command -v update-desktop-database`" ]; then |
||||
|
echo "updating desktop database as per https://aur.archlinux.org/minetest-git.git" |
||||
|
update-desktop-database &>/dev/null && update-desktop-database -q |
||||
|
fi |
||||
|
if [ -f "`command -v gtk-update-icon-cache`" ]; then |
||||
|
echo "updating gtk icon cache as per https://aur.archlinux.org/minetest-git.git" |
||||
|
gtk-update-icon-cache &>/dev/null && gtk-update-icon-cache -q -t -f usr/share/icons/hicolor |
||||
|
fi |
||||
|
# minetest; |
||||
|
echo -e "\n\n\e[1;33mYou can run Minetest Server by typing \"minetestserver\" in a terminal, but using mtsenliven.py is recommended instead and keeps a config file for what world and subgame you want via minetestinfo.py.\e[0m" |
||||
|
echo "The only known uninstall method is:" |
||||
|
echo " cd $HOME/Downloads/minetest" |
||||
|
echo " sudo xargs rm < install_manifest.txt" |
||||
|
echo " # as per http://irc.minetest.net/minetest/2015-08-06" |
||||
|
# based on https://forum.minetest.net/viewtopic.php?f=42&t=3837 (below) |
||||
|
# sudo apt-get install -y git build-essential libirrlicht-dev libgettextpo0 libfreetype6-dev cmake libbz2-dev libpng12-dev libjpeg8-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-openssl-dev libluajit-5.1-dev liblua5.1-0-dev libleveldb-dev; cd; git clone https://github.com/minetest/minetest.git; cd minetest/games; git clone https://github.com/minetest/minetest_game.git; cd ..; cmake . -DENABLE_GETTEXT=1 -DENABLE_FREETYPE=1 -DENABLE_LEVELDB=1; make -j$(nproc); sudo make install; minetest; echo -e "\n\n\e[1;33mYou can run Minetest again by typing \"minetest\" in a terminal or selecting it in an applications menu.\nYou can install mods in ~/.minetest/mods, too.\e[0m" |
||||
|
|
Loading…
Reference in new issue