Results 1 to 16 of 16

Thread: Simba test builds for Linux

  1. #1
    Join Date
    Dec 2011
    Location
    East Coast, USA
    Posts
    4,231
    Mentioned
    112 Post(s)
    Quoted
    1869 Post(s)

    Default Simba test builds for Linux

    Recently there has been some movement on getting Simba (and related software) working properly on GNU/Linux. This is mainly a side effect of the increased development being done on Simba of late.

    Travis now conducts automatic builds for the simba-1.3 branch. They can be found at the releases page. Also, the first release candidate of Simba 1.3 has landed, it can be found here. In deference to this, I am no longer hosting any binaries. This thread remains for historical reasons, as well as being a good reference for Simba's build process.

    Linux support is quite solid as of Simba 1.3 RC1, many bug fixes and improvements have been made! Some templates for the X Binary Package System (XBPS) have been written, and there is now a (relatively) simple way to create reproducible builds of Simba for Linux.

    XBPS is easy to install and use on any distribution; beyond some potential prerequisites it's as simple as cloning a repository and running a few commands on your local copy. Examples of other software for this type of work are Travis or Buildbot, both of which are already employed by the Simba project.

    Table of Contents


    The entire process can be broken down into three pretty short steps. Lape does not support 32-bit and doesn't receive testing for that architecture, so we will be building 64-bit binaries only.

    0) Prerequisites


    Running Void Linux is passively recommended but absolutely not required. Even I am not running it directly for this, most testing performed has actually been on Ubuntu 18.04. In practice, any recent distribution should work fine.

    However, if not using Void Linux you will need to manually download and install the static XBPS binaries for your architecture before you begin.

    Code:
    # 64-bit
    $ wget https://alpha.de.repo.voidlinux.org/static/xbps-static-latest.x86_64-musl.tar.xz
    
    $ mkdir ~/xbps
    $ tar xvf xbps-static-latest* -C ~/xbps
    $ export PATH=~/xbps/usr/bin:$PATH
    Note: This distribution of the X Binary Package System is tagged as -musl, which indicates that it will run on glibc systems and can also cross-compile for musl libc.

    That's it for the setup! The only other prerequisite is a functional installation of git.

    1) Bootstrapping


    XBPS needs to install some initial packages before it's ready to build Simba. All operations are performed inside a chroot, no files outside the repository are written to.

    Code:
    $ git clone https://github.com/KeepBotting/void-packages
    $ cd void-packages
    
    $ ./xbps-src binary-bootstrap
    2) Compiling Simba


    The compilation process itself is two-step. First we build Lazarus, then we build Simba.

    Code:
    # the required templates are contained in this branch
    $ git checkout simba
    
    # optional, but it's a good idea to clean up before attempting a build
    $ ./xbps-src clean
    
    # 64-bit build
    $ ./xbps-src build lazarus
    $ ./xbps-src build simba
    Wait for the compilation to finish. When complete, retrieve the binary and test it.

    Code:
    $ find masterdir* -executable -type f -name "Simba*" -exec mv {} $(pwd) \;
    
    $ ./Simba.x86_64-linux
    Side note: xbps-src runs against the real Void repositories, which only retain the latest version of a binary package at any given time. My fork of void-packages is not always in-sync with upstream, so during the course of your build you may observe XBPS compiling versions of dependent packages that have been superseded, and are no longer found in the repository.

    This is not really a problem but might slow down the build process a lot. To bring your local copy up-to-date with upstream, follow the steps detailed here, keeping the upstream URL in mind. This will make your local copy aware of version bumps that have occurred in upstream since the last time it was fast-forwarded.

    3) Roadmap


    The roadmap should change relatively often. If you are interested in the project, check back here for updates. Or, check for new commits in the GitHub repository.

    I have decided to go for packages next -- .tar.gz files which ideally will contain Simba binaries, plugins, and includes like SRL/RSW. Some progress has been made on this but it has not been committed to the repository just yet. Stay tuned. and I have posted about it here: https://villavu.com/forum/showthread...10#post1392810

    Recently I have discovered that the OpenGL32 plugin (the lack of which has historically been a sticking point preventing RS3 from loading correctly inside SMART on Linux) actually has a Linux target in its makefile https://github.com/Brandon-T/GLX I must investigate this.

    Another thing I would like to work on is getting Simba builds (probably 1.3 only) with the latest Lape submodules included, I understand the ones currently in the Simba repository are outdated and lack certain fixes. Lately, this has been getting handled as required.

    I would also like to investigate GTK+3 builds, or possibly even Qt builds, I know the LCL supports that toolkit as well.

    If anybody has any suggestions or information about the aforementioned that I might not already know, contributions are appreciated!

    4) Closing words


    These builds are fully functional and ready to be used out of the box. Since Simba 1.3 RC1, the binary will create its directory structure on startup if they don't already exist. In the future, I would like to distribute tarballs which contain Simba, plugins, and possibly even a version of the SRL include. Distribution packages (XBPS, DEB, and RPM) may follow later.

    If you have a plugin you would like built for Linux, please post a link to the source code along with a short description of the build process (if known) as well as any quirks you're aware of. If you would like a Simba build using a different configuration than what I have posted here, please ask.

    I'd like to extend a warm thank-you to everyone who's helped me so far with this project, both directly and indirectly. In no particular order: @Olly @slacky @BenLand100 @Wizzup? @Harrier @Patriq @6b49WR7VbUjs9Hqeq5Etr @Oox (don't know your username on the forum, sorry!) @R0b0t1;



    Wouldn't be complete without some pictures, now would it?


    5) FAQ


    Q: Help! I receive the following error when trying to run Simba:
    Code:
    error while loading shared libraries: libkeybinder.so.0: cannot open shared object file: No such file or directory
    A: Simba's only runtime dependency on Linux is libkeybinder. You may have to install the package manually if it does not already exist on your system. On Ubuntu, the package which provides this file is libkeybinder0. Note that some distributions may ship two libkeybinder packages, one for GTK2 and one for GTK3. Simba is built with GTK2, so the former package will be the one that is needed.

    Final note: if an administrator would like any changes made as far as how these builds are distributed documented, please inform me and I will certainly comply.
    Last edited by KeepBotting; 11-02-2019 at 02:06 PM. Reason: overhaul/simplify, remove templates for 32-bit stuff, update to align with upstream repository changes
    GitLab projects | Simba 1.4 | Find me on IRC or Discord | ScapeRune scripts | Come play bot ScapeRune!

    <BenLand100> we're just in the transitional phase where society reclassifies guns as Bad™ before everyone gets laser pistols

  2. #2
    Join Date
    Feb 2012
    Location
    Norway
    Posts
    995
    Mentioned
    145 Post(s)
    Quoted
    596 Post(s)

    Default

    But can it run Crysis?

    Oh, and good job! =)
    Last edited by slacky; 06-18-2018 at 04:26 AM.
    !No priv. messages please

  3. #3
    Join Date
    Feb 2018
    Posts
    23
    Mentioned
    1 Post(s)
    Quoted
    3 Post(s)

    Default

    Everything so far looks and works great, Glad for things to finally be moving forward in terms of linux support again , Keep up the good work.

  4. #4
    Join Date
    Nov 2011
    Location
    root@fsociety:~#
    Posts
    106
    Mentioned
    1 Post(s)
    Quoted
    44 Post(s)

    Default

    Hype! Thanks for sharing, really interesting. How's Simba running in Wine nowadays? I have tried it in the past and it seemed to work, native builds are obviously way better though.
    Home sweet home.

  5. #5
    Join Date
    Feb 2012
    Location
    Portugal
    Posts
    91
    Mentioned
    3 Post(s)
    Quoted
    41 Post(s)

    Default

    Amazing work! I always wondered for how long would Linux support be broken:


    Good stuff! Now I can show Lape to my fellow friends on the go! :3

  6. #6
    Join Date
    Dec 2011
    Location
    East Coast, USA
    Posts
    4,231
    Mentioned
    112 Post(s)
    Quoted
    1869 Post(s)

    Default

    Thanks all

    Quote Originally Posted by Jeroen View Post
    Hype! Thanks for sharing, really interesting. How's Simba running in Wine nowadays? I have tried it in the past and it seemed to work, native builds are obviously way better though.
    Wine works fine to my understanding, I have not tested it recently but have used it in the past with as much success as can be expected. If you're running everything through Wine, though, it becomes yet another dependency you've got to maintain. This project should more-or-less eliminate the need to run Simba using Wine.
    GitLab projects | Simba 1.4 | Find me on IRC or Discord | ScapeRune scripts | Come play bot ScapeRune!

    <BenLand100> we're just in the transitional phase where society reclassifies guns as Bad™ before everyone gets laser pistols

  7. #7
    Join Date
    Jun 2012
    Posts
    4,867
    Mentioned
    74 Post(s)
    Quoted
    1663 Post(s)

    Default

    Really nice to see, thanks! Made my first script in a number of years.
    Screenshot_2018-06-18_15-48-33.png

  8. #8
    Join Date
    Feb 2012
    Location
    Canada
    Posts
    1,164
    Mentioned
    26 Post(s)
    Quoted
    433 Post(s)

  9. #9
    Join Date
    Dec 2011
    Location
    East Coast, USA
    Posts
    4,231
    Mentioned
    112 Post(s)
    Quoted
    1869 Post(s)

    Default

    Picking up steam on this again. Started work on a packaging script for Simba, here's the progress so far: https://github.com/KeepBotting/void-...7c24765aeded2e

    This will likely change often up until Simba 1.3 is released, as our software and how it will be distributed is very much in flux. @Olly; is hard at work re-structuring font sets and plugins, and I would like any packaging for Linux to align with how he is setting things up.

    Ideally Linux packages will compile Simba and plugins from source, taking special care to stay identical to the versions that are officially distributed. In fact, simply downloading binaries from their official locations (once they exist) may even be preferable to building them.

    Simba 1.3 will include a package manager, so I must align with that as well, to ensure that people using the unofficial Linux package will be able to update components normally.

    When all is said and done, I hope to be able to provide a one-time download that can be extracted and used on Linux immediately, without any extra setup. The package should contain mechanisms whereby subsequent updating shall be conducted through official channels, meaning my infrastructure needn't be utilized outside of the initial download.

    At which time official Linux installers/packages are distributed, this project will be rendered obsolete, which will make me very happy.

    Full speed ahead!

    Edit: updated the roadmap earlier, forgot to mention

    Edit2: Recently I have discovered that the OpenGL32 plugin (the lack of which has historically been a sticking point preventing RS3 from loading correctly inside SMART on Linux) actually has a Linux target in its makefile https://github.com/Brandon-T/GLX I must investigate this.

    I have added the above paragraph to the roadmap as well as made a few other tweaks to the OP.
    Last edited by KeepBotting; 09-18-2018 at 09:58 PM.

  10. #10
    Join Date
    Aug 2018
    Posts
    2
    Mentioned
    0 Post(s)
    Quoted
    1 Post(s)

    Default

    Gonna test this out. Thanks a lot

  11. #11
    Join Date
    Dec 2011
    Location
    East Coast, USA
    Posts
    4,231
    Mentioned
    112 Post(s)
    Quoted
    1869 Post(s)

    Default

    Quote Originally Posted by Flischking View Post
    Gonna test this out. Thanks a lot
    Thanks for the support!
    GitLab projects | Simba 1.4 | Find me on IRC or Discord | ScapeRune scripts | Come play bot ScapeRune!

    <BenLand100> we're just in the transitional phase where society reclassifies guns as Bad™ before everyone gets laser pistols

  12. #12
    Join Date
    Dec 2011
    Location
    East Coast, USA
    Posts
    4,231
    Mentioned
    112 Post(s)
    Quoted
    1869 Post(s)

    Default

    Updated OP with a new build in response to the most recent wave of commits to the Simba repository (22nd Aug - 2nd Sep): https://github.com/MerlijnWajer/Simba/commits/fpc-3.0

    I will only be updating the 64-bit build of Simba 1.3 from now on, unless anybody wants newer builds of other configurations.

    I'd also like to toss a link out to another (small) project of mine, libframebuffer. It is Linux-specific (like the builds on this thread) and works as a great alternative to SMART. It is actually very similar to what was done here as a component of BenLand100's Python macroing solution.

    Edit: Updated build again, we are now up-to-date with this commit: https://github.com/MerlijnWajer/Simb...cd8d65641b085b
    Last edited by KeepBotting; 09-18-2018 at 10:00 PM.
    GitLab projects | Simba 1.4 | Find me on IRC or Discord | ScapeRune scripts | Come play bot ScapeRune!

    <BenLand100> we're just in the transitional phase where society reclassifies guns as Bad™ before everyone gets laser pistols

  13. #13
    Join Date
    Jan 2008
    Location
    10° north of Hell
    Posts
    2,035
    Mentioned
    65 Post(s)
    Quoted
    164 Post(s)

    Default

    @KeepBotting;

    Update your guide. fpc-3.0 branch has been renamed simba-1.3

    Dg's Small Procedures | IRC Quotes
    Thank Wishlah for my nice new avatar!
    Quote Originally Posted by IRC
    [22:12:05] <Dgby714> Im agnostic
    [22:12:36] <Blumblebee> :O ...you can read minds

  14. #14
    Join Date
    Dec 2011
    Location
    East Coast, USA
    Posts
    4,231
    Mentioned
    112 Post(s)
    Quoted
    1869 Post(s)

    Default

    Quote Originally Posted by Dgby714 View Post
    @KeepBotting;

    Update your guide. fpc-3.0 branch has been renamed simba-1.3
    Updated, thanks!
    GitLab projects | Simba 1.4 | Find me on IRC or Discord | ScapeRune scripts | Come play bot ScapeRune!

    <BenLand100> we're just in the transitional phase where society reclassifies guns as Bad™ before everyone gets laser pistols

  15. #15
    Join Date
    Apr 2007
    Location
    In My Secret Lair of Secretness...
    Posts
    112
    Mentioned
    1 Post(s)
    Quoted
    46 Post(s)

    Default

    Thank you for this great guide. I'm using the latest Simba 1.3 and I have 99% of it figured out and I can run scripts but I don't know how to use libframebuffer. I pm'd you some questions. Thank you so much for all your work here
    Jesus loves you

  16. #16
    Join Date
    Dec 2011
    Location
    East Coast, USA
    Posts
    4,231
    Mentioned
    112 Post(s)
    Quoted
    1869 Post(s)

    Default

    Quote Originally Posted by Emarian View Post
    Thank you for this great guide. I'm using the latest Simba 1.3 and I have 99% of it figured out and I can run scripts but I don't know how to use libframebuffer. I pm'd you some questions. Thank you so much for all your work here
    You're very welcome I've replied to your PM.
    GitLab projects | Simba 1.4 | Find me on IRC or Discord | ScapeRune scripts | Come play bot ScapeRune!

    <BenLand100> we're just in the transitional phase where society reclassifies guns as Bad™ before everyone gets laser pistols

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •