Skip to content

Conversation

@W3SLAV
Copy link

@W3SLAV W3SLAV commented Aug 13, 2025

I have made a simple python script and a shell script which automates the BlocksDS install process. It builds the BlocksDS sdk from scratch and pulls a prebuilt copy of wf-pacman from the official source listed in the docs.

Why use Python instead of only shell script?:

  • simplifies final install script across all platforms (reusable, only needs other script for PATHs)
  • python is already needed for BlocksDS
  • works on windows/linux/mac

Notes:
I would recommend running the shell script as administrator with something like sudo bash Install_Linux.sh so you don't have to type your password several times durring the install.

Copy link
Member

@AntonioND AntonioND left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Python isn't actually required by BlocksDS. Only ArchitectDS and Nitro Engine use python, but those aren't mandatory.

In the original issue #214 I mentioned bash and PowerShell because those are two tools that Linux and Windows users are almost guaranteed to have in their systems. Python is in 99.99% of Linux systems, so it's fair to use it there, but I wouldn't expect Windows users to have it.

@W3SLAV
Copy link
Author

W3SLAV commented Aug 13, 2025

Python isn't actually required by BlocksDS. Only ArchitectDS and Nitro Engine use python, but those aren't mandatory.

In the original issue #214 I mentioned bash and PowerShell because those are two tools that Linux and Windows users are almost guaranteed to have in their systems. Python is in 99.99% of Linux systems, so it's fair to use it there, but I wouldn't expect Windows users to have it.

We could prebuild binaries for windows if you want to. In regards to the other windows specific issues, I had made a note at the top about some of that. I will make some of windows specific changes and will switch to using wf-pacman to install blocks instead of building (might re-add building from scratch as a flag option).

@W3SLAV
Copy link
Author

W3SLAV commented Aug 13, 2025

The installer has been updated here is an overview of what I did and why:

  1. "Windows support" has been added (both WSL and MSYS have python by default), The reason that there is very little MSYS stuff (platform = Windows) is because there are already installers for both MSYS and Wonderful-Toolchain on MSYS. The script only installs blocks via pacman on MSYS, it will need paths added to finalize the install, but should be fine otherwise.

  2. Improved Error checking, not a ton, but a little bit more than before. This should be fine for most things, the only other thing I can think to check is if tar is installed on linux, but that seems a bit pointless.

  3. Added --minimal flag to choose if user wants NF-lib, docs, etc....

  4. Made "portable" builds platform dependent (I will probably be the only one using this)

  5. Resolved previous conversations (for reasons above)

Notes:
If you want to we could probably repack the previous installers and build this script into a binary that installs them on windows, but I don't see a point, python is pre-packed on every supported platform already and the minor inconvenience of two installers for MSYS probably isn't worth repacking everything for.

Copy link
Member

@AntonioND AntonioND left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My point is... You're still just running shell commands without checking for errors or anything, so this is worse than a simple bash script with set -e at the top that runs a bunch of commands and stops whenever one of them fails.

You need to ask users to install Python before running the setup script, which kinda defeats the purpose of the script. You need to point users to the Python docs, which is harder than copy-pasting a few commands from the WF setup page.

And this doesn't work on Windows anyway, so the only advantage of using Python isn't really there.

I'm really not convinced by this approach to the setup scripts. If more people support it I could change my mind, but this really doesn't simplify the setup instructions.

EDIT: On Windows you still need to follow different instructions to setup MinGW before you even run this script, not Python.

@W3SLAV
Copy link
Author

W3SLAV commented Aug 13, 2025

My point is... You're still just running shell commands without checking for errors or anything, so this is worse than a simple bash script with set -e at the top that runs a bunch of commands and stops whenever one of them fails.

You need to ask users to install Python before running the setup script, which kinda defeats the purpose of the script. You need to point users to the Python docs, which is harder than copy-pasting a few commands from the WF setup page.

And this doesn't work on Windows anyway, so the only advantage of using Python isn't really there.

Shell error checker has been added.

Users don't need to install python if it is built into an executable with something like PyInstaller (not the most efficient, but it's an installer), allowing this to be universal. What really needs to happen is an NSIS (or similar) installer needs to be made for windows if you want to simplify the install process further. This is not a python specific issue, the same issue would persist with powershell,users would still need to at least install MSYS manually.

Edit: found a way around this, but it would still be best to have an actual installer.

@W3SLAV
Copy link
Author

W3SLAV commented Aug 15, 2025

Update:

The windows install process is now completely automated without being dependent msys, also added batch file to compile for windows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants