From 1924553690a8f47be529d157e09746d501db41a7 Mon Sep 17 00:00:00 2001 From: TotallyNotElite <38938720+TotallyNotElite@users.noreply.github.com> Date: Tue, 15 Oct 2019 21:11:06 +0200 Subject: [PATCH] Update README.md --- README.md | 109 +++++++++++++----------------------------------------- 1 file changed, 26 insertions(+), 83 deletions(-) diff --git a/README.md b/README.md index b2d55189..db7b05a5 100755 --- a/README.md +++ b/README.md @@ -38,103 +38,47 @@ and a lot of useful features, including # INSTALLATION -## Automatic: (Ubuntu 17.10+/Arch based only) +## Automatic: (Ubuntu 18.04+/Fedora/Arch based only) Run in terminal: * `bash <(wget -qO- https://raw.githubusercontent.com/nullworks/One-in-all-cathook-install/master/install-all)` -## Manual (Outdated): -You need CMake to build cathook, CMake should take care of dependencies +## Manual: -Install libglez, libxoverlay and simple-ipc +### Clone Cathook: +#### User mode: +```git clone --depth 1 https://github.com/nullworks/cathook``` +#### Developer mode: +```git clone --recursive https://github.com/nullworks/cathook``` -Clone Cathook (`git clone --recursive https://github.com/nullworks/cathook`) - -* `cd ` -* `mkdir build && cd build` -* `cmake ..` -* `make && sudo make install` -* `cd ..` - -Repeat until libglez, libxoverlay and simple-ipc are installed - -Install cathook - -* `mkdir build && cd build` -* `cmake .. && make` -* `sudo make data` - -Make sure to put the required files in ../requirements/lib*, and cathook in ../cathook. - -### Outdated (but might be helpful): - -You need to use gcc-7 for compiling cathook if you add `-e CC=gcc-7 CXX=g++-7` to make command line - -Ubuntu gcc7 installation: (check if you have gcc-6 installed already by typing `gcc-6 -v` -```bash -sudo apt update && sudo apt install build-essential software-properties-common -y && sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && sudo apt update && sudo apt install gcc-snapshot g++-7-multilib gcc-7 g++-7 -y +### Install dependencies: +#### Arch/Manjaro: ``` - -Ubuntu other dependencies installation: - -```bash -sudo apt update && sudo apt install git libssl-dev:i386 libboost-all-dev libc6-dev:i386 gdb libsdl2-dev libglew-dev:i386 libfreetype6-dev:i386 -y +git boost cmake make gcc gdb lib32-sdl2 lib32-glew lib32-freetype2 rsync lib32-libglvnd dialog ``` - -### Even more Outdated (but might still be helpful): - -Arch gcc6 & dependencies installation: -```bash -sudo pacman -U https://archive.archlinux.org/packages/g/gcc-multilib/gcc-multilib-6.3.1-2-x86_64.pkg.tar.xz https://archive.archlinux.org/packages/g/gcc-libs-multilib/gcc-libs-multilib-6.3.1-2-x86_64.pkg.tar.xz https://archive.archlinux.org/packages/l/lib32-gcc-libs/lib32-gcc-libs-6.3.1-2-x86_64.pkg.tar.xz && sudo cp -r /usr/include/c++/6.3.1/ /tmp/ && sudo pacman -S gdb gdb-common glew1.10 glew lib32-glew1.10 rsync lib62-gcc-libs gcc-libs-multilib gcc-multilib --noconfirm && yes | sudo cp -r /tmp/6.3.1/ /usr/include/c++/ +#### Ubuntu ``` - -If you don't use Ubuntu or Arch (or if Arch script gets outdated), here's the list of what cathook requires: - -* `cmake-qt-gui` (optional, for easy configuring) -* `cmake` -* `gcc-7` -* `g++-7` -* `gcc-7-multilib` -* `g++-7-multilib` -* `glew` -* `gdb` (for the injection script, you can use different injector if you want) -* `libssl-dev:i386` -* `libc6-dev:i386` -* `libsdl2-dev` -* `libglew-dev:i386` -* `libfreetype6-dev:i386` -* `libboost-all-dev` -* `rsync` (used for copying shaders/fonts to tf2 data directory, `check-data` script) - - -Cathook installation script: -```bash -git clone --recursive https://github.com/nullworks/cathook && cd cathook && bash build-tf2 +software-properties-common build-essential git g++ g++-multilib libboost-all-dev gdb libsdl2-dev:i386 libglew-dev:i386 libfreetype6-dev:i386 cmake dialog rsync ``` +#### Fedora +``` +cmake dialog make gcc-c++ glibc-devel.i686 freetype-devel.i686 SDL2-devel.i686 glew-devel.i686 boost-devel.i686 rsync gdb git +``` +#### Other distros +You will have to find matching packages yourself. +### Compile Cathook: +Go into the cathook directory and run +```./update``` -**Errors while installing?** +## Updating Cathook +Run the `update` script in Cathook folder. -`/usr/include/c++/7/string:38:28: fatal error: bits/c++config.h: No such file or directory` -You don't have gcc-7-multilib installed correctly. - -Anything related to `glez` or `xoverlay` - -Install libglez and libxoverlay. - -`src/: fatal error: mathlib/vector.h: No such file or directory` -You didn't download Source SDK. **DO NOT DOWNLOAD CATHOOK USING "DOWNLOAD .ZIP" FROM GITHUB. USE git clone --recursive!** - -If you are using another distro, make sure to have required dependencies installed. - -## Updating cathook -Run the `update` script in cathook folder. - -Cathook requires a special data folder (contains shaders, font files, walkbot paths, etc). This folder is located at `/opt/cathook/data` and is generated automatically when you compile cathook. +Cathook requires a special data folder (contains shaders, font files, walkbot paths, etc). This folder is located at `/opt/cathook/data` and is generated automatically when you compile Cathook. ## Injection -`sudo ./attach` to attach cathook into TF2. Optionally, you can provide an argument number (0-n - #) to provide the TF2 process ID (for bots). +`sudo ./attach` to attach Cathook into TF2. Optionally, you can provide a PID (for bots or other linux users). -`sudo ./attach-backtrace` to attach and print backtrace incase TF2 crashes. Some users report that this causes FPS drop in-game. This is recommended to grab a log of what went wrong if Cathook is crashing on you. +`sudo ./attach-gdb` to attach and print backtrace in case TF2 crashes. Requires a debug Cathook build (run `./config` to configure the build mode). Some users report that this causes FPS drop in-game. This is recommended if you want to grab a log of what went wrong if Cathook is crashing on you ([report it!](https://github.com/nullworks/cathook/issues)) ## Followbots (outdated) `cathook-ipc-server` allows you to run and control Followbots to do your evil bidding in-game. The installation for Followbots is quite complex, and will not be covered on this page. Obviously, you must have several user accounts ready to run TF2. @@ -145,4 +89,3 @@ The installation script is as followed: git clone --recursive https://github.com/nullworks/cathook-ipc-server && cd cathook-ipc-server && make -j4 ``` To run the Followbot server, run `./bin/cathook-ipc-server`. You can also use `./bin/cathook-ipc-server &>/dev/null &` to run it in background. -