Package: eochat
WHAT IS THIS?Are you complaining that EO consumes too many resources? Is your machine constantly hot? Do you still have some people you want to talk in there, but can't stay for long? Worry not! You will be able to chat with other people on EO without having to load anything else.
By the way, most of this is fromhttps://gitlab.com/canonical-form/everfree-outpost/-/tree/master/src. I just added the chat functionality, Cargo.toml files and gen.pyPrerequisitesApt/Debian SystemsBuildingHOW TO RUN THIS MESSClone this repositorygit clone https://gitlab.com/EO_utilities/eo-cli-chatand follow the steps below. Your machine also needs to havegcc,pythoninterpreter andrustcset up (last version preferred).PrerequisitesThese are the prerequisites for running the application.libsodiumlibsodium-devpython 3.6tornadoaioconsoleAdditionally if you are building eo-cli-chat from source, then you will need:gitmakepipApt-based SystemsYou can install the dependencies with:sudoaptfastinstall-ylibsodium-devgitmakeInstall rust alongside rustup with:curl--proto'=https'--tlsv1.2-sSfhttps://sh.rustup.rs|shInstall the python dependencies with:pipinstalltornadoaioconsoleBuildingTo build this project from source:gitclonehttps://gitlab.com/script-anon/eo-cli-chat
gitclonehttps://gitlab.com/script-anon/eoclient_cryptcdeoclient_crypt
cargobuild--release
sudomakeinstallcd../eo-cli-chat
pipinstall-e.Then you can connect usingeochat.Building LibsodiumIf you don't havelibsodiuminstalled on your system, you can build it from source using the instructions below.After compilation, the end result should be a .a (Linux) or .lib (Windows) file. You can follow the steps here:https://libsodium.gitbook.io/doc/installationand go to "Installing Rust" section after that. I think this is the recommended way to do this from experience.Or you can follow my steps too. Clone the repository withgit clone -b stable --single-branch https://github.com/jedisct1/libsodium/or you can also download it directly fromhttps://github.com/jedisct1/libsodium/tree/stable.Inside libsodium root directory, create an empty directory insidesrc/libsodiumThen copy gen.py to that empty directory you have just created and go to that directory.Runpython gen.pyand it will generate a .txt fileCopy the contents and paste them in command line. You can ignore all warningsOnce you have all .o files, run the following to generatelibsodium.a(Linux), orsodium.libWindows) depending on your Operating System:LINUX
arrclibsodium.a*.o

WINDOWS
arrcsodium.lib*.oRustOP really likes Rust. Unfortunately, you will have to love it too.Get it working on your machine by following the instructions onhttps://www.rust-lang.org/tools/installPythonYou can install the executable withpip install -e ..Compiling OP's crypto libraryGo to this project (eo-cli-chat) root directory and run:cargo build --releaseCongrats! It failed, but don't worry, it is missing the .a or .lib file from before.Copy that file totarget/release/deps.Run again:cargo build --release. It should succeed!You should have a .so or .dll file intarget/release.Running the programCreate a directory calledlibin this project's (eo-cli-chat) root directory.Copy that .so or .dll file from target/release to lib/.Runeochat.You should be able to input your username and password. If there is no such combination, then you will be an anon instead.ConfigurationYou can change your appearance if you modify theconfig.tomlfile
located%APPDATA%\eochat\config.tomlfor Windows and~/.config/eochat/config.tomlfor Linux.What you can do with thisAlmost nothing, you can receive chat messages and also send them. Just type whatever you want and press Enter, and your message should be sent. You can also customize your character, and you can also run this on Android (assuming your phone is not double-potato-tier).What?!? Android support?!?Yeah, you read it right. You can now talk to other people on EO using just your smartphone.
The steps are almost similar, but there are also additional steps too since you'll have to cross-compile for your Android phone. If you have a Mac and an Iphone, maybe it is also possible to compile it for your Iphone by modifying these steps accordingly, but that's out of my reach!Downloading the Android NDKyou need to download the Android NDK, but version r22b (version r23b was throwing an error when using cargo) from here and unzip it:https://github.com/android/ndk/wiki/Unsupported-DownloadsOnce unzipped, you'll make use of the directory located in:android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/bin/In should say windows-x86_64 too if you are on Windows.Depending on what Android version you have and your Android architecture, you'll need to use the corresponding pair of ar and linker. For example, for Android 10 (api level 29) and architecture arm64, you will need: aarch64-linux-android-ar and aarch64-linux-android29-clang and the following paths (remember to use the full path to reference them and add the extensions .exe for thearpath and .cmd for the linker ON WINDOWS):android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-arandroid-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android29-clangIn other words, just match the pairs (aarch64 and aarch64), or (i686 and i686), or (arm and armv7) or (x86_64 and x86_64) for both the ar and the linker.Remember, it is just clang and not clang++.Building libsodiumThe steps are almost the same as the previous "building libsodium" section. However, before you compile, you need to:Open gen.pyModify the value of thecompilervariable. Instead ofgccit should be thefull pathof the linker you chose previously.For this example, it should be thefull pathofandroid-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android29-clangSave the file and follow the rest of the steps in the previous "building libsodium" section, except for step 7.Instead ofarreplace it with thefull pathof thearyou chose previously.For this example, it should be thefull pathofandroid-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-arNow, for some reason, the toolchain didn't recognize *.o on Windows reeeeee, but it did on Linux. If that happens to you, copyname-gen.pyto where you copied gen.py and run it. It will output all the .o files in the directory in cmd. So just copy all of them and replace *.o with that and it should be good.Even if you are on Windows, the library name should belibsodium.aCompiling OP's crypto libraryThe steps are pretty similar to the "Compiling OP's crypto library" section, but first...In the root of this project, open this file.cargo/config.toml.You don't need to fill all targets, just the one that you have been using all this time.Copy the full paths that you have been using for the ar and linker.If you are on windows the linker should end in.cmd, and the ar should end in.exe. Also, the paths should contain\\instead of\In terminal/cmd, type thisrustup target add aarch64-linux-android. If you are building for another architecture, changeaarch64-linux-androidto the one you are using.Save the file and executecargo build --target aarch64-linux-android --release. If you are using another Android architecture, then usearmv7-linux-androideabiori686-linux-androidinstead ofaarch64-linux-androidIf it fails withld: error: unable to find library -lsodium, just copy thelibsodium.afile you have compiled intotarget/<architecture>/release/depswhere<architecture>would beaarch64-linux-androidin this case.Run the command in step 6 again and it should succeed. You should find a .so file (even on Windows) intarget/<architecture>/release/Copy that .so file in the directorylib/in the root directory. Create that directory if you haven't already.Running the programFinally, the moment of truth. You won't be running this on your computer, but on your phone.Download Pydroid 3 apk for Android and install it.Copy the directoriessrc,setup.py,README.mdandconfig.tomlfrom the root of this project from your computer to a directory named EO in your phone. You can delete bothlibcommon_cryptoandlibcommon_crypto_bindingsdirectories. Create atarget/releasepath in the newly created EO directory and copy the.sofile in there.Open Pydroid 3 and press on the top left corner and choose "Terminal settings". Then scroll down and select "Home folder" and copy the address.Now, go back to before you chose "Terminal settings" and select "Terminal"Typelsto see some directories and copy the EO directory to the "Home folder" you copied in step 3:cp -r EO <HOME folder>in which<HOME filder>is the path you copied without the<>Typecd <HOME folder>andcd EO.Typepip install -e .Finally typeeochatYou should be greeted with the username and password prompt.FAQWill mobileposting ruin EO?
No, too much effort!