MSXHub released

MSXHub released

by fr3nd on 18-11-2018, 19:08
Topic: Software
Languages:

MSXHub is an application by MRC user fr3nd to download and install software from the internet using an UNAPI compatible network card.
It's like Debian's apt-get, RedHat's yum or macOS' homebrew, but for our beloved MSX computers.

Installing a package from the internet is as easy as typing hub install package_name from the MSX-DOS environment. The package will be automatically downloaded, installed and ready to be executed.

At the moment there are around 30 packages ready to be installed and it is the developer's idea to constantly increase this number.

The source code for MSXHub can be found on GitHub and the developer would be very happy to receive pull requests with improvements.

The packages are also also on GitHub and it's possible to contribute creating new packages. The package format is open, documented and very simple. Please, consider submitting the package for your software if it's not already in the repository!

Visit msxhub.com to get it.

Comments (21)

By Pencioner

Paladin (711)

Pencioner's picture

18-11-2018, 20:19

Great news! I was looking forward for the release Smile
Thank you so much for efforts to make it happen Running Naked in a Field of Flowers

By KdL

Paragon (1131)

KdL's picture

18-11-2018, 20:35

Very great news! Like +1.000.000 Big smile Big smile Big smile

By x-nen Aivalahostia

Paladin (915)

x-nen Aivalahostia's picture

18-11-2018, 22:08

Nice tool, works fine!!!

By NYYRIKKI

Enlighted (5045)

NYYRIKKI's picture

19-11-2018, 04:02

Looks, very interesting... How ever I don't like the idea that all packages are installed to root directory. The number of files/directories on root of a disk was limited to 112 with floppies, but it might be that on HDD this limit is now 512... How ever it is limited unlike in other directories.

I think it would be better to install the packages under the category directory... ie. \GAMES\ALIEN8\ or \TOOLS\VI\

... or at least create MSXHUB-directory and install all under that.

By ToriHino

Master (245)

ToriHino's picture

19-11-2018, 06:43

I agree with NYYRIKKI that using the category as a directory would probably be better. Other than that, this is a really great tool. Also did a first pull request, although i had to modify the scripts first a bit to let it run in the Windows PowerShell Smile.

By fr3nd

Resident (54)

fr3nd's picture

19-11-2018, 08:43

Thank you for your nice words, suggestions and contributions!

I know the decision of storing the packages directly on the root directory may not be of liking for everyone. However, I implemented the possibility to choose the destination directory for a package. It's possible to run hub install alien8 a:\games\alien8 or hub install vi a:\tools\vi and it will install the package on the specified directory.

I think that way is simpler for lazy users who just want the software to be installed and customizable enough for power users who want a better structure on their disks.

ToriHino, thank you for your pull request. That was fast! I'll review it soon.
About the changes you did to let in run in Windows, I'm not a Windows expert, but would be possible to have them in a separate Makefile (ie: Makefile.win) so any user could use them?

By MicroTech

Champion (382)

MicroTech's picture

19-11-2018, 09:44

Really cool!
Just a question/request: description states that required package is "automatically downloaded, installed and ready to be executed", is the download step necessary?
I mean: if I do not have an ethernet card, but I can provide a .yaml file, can I use msx hub simply as an off-line package installer?

By edoz

Prophet (2097)

edoz's picture

19-11-2018, 09:47

Wow.. i just give it a try... but it worked without issues! Very nice!

By fr3nd

Resident (54)

fr3nd's picture

19-11-2018, 11:10

Quote:

Just a question/request: description states that required package is "automatically downloaded, installed and ready to be executed", is the download step necessary?
I mean: if I do not have an ethernet card, but I can provide a .yaml file, can I use msx hub simply as an off-line package installer?

I'm afraid that's not going to be possible. The package format relies completely on the Internet connection so an UNAPI compatible network card is required for MSXHub to work properly. I've tested it with the MSX Ethernet from Tecnobytes, but other users reported it's also working properly with GR8NET.

By NYYRIKKI

Enlighted (5045)

NYYRIKKI's picture

19-11-2018, 12:11

fr3nd wrote:

Thank you for your nice words, suggestions and contributions!

I know the decision of storing the packages directly on the root directory may not be of liking for everyone. However, I implemented the possibility to choose the destination directory for a package. It's possible to run hub install alien8 a:\games\alien8 or hub install vi a:\tools\vi and it will install the package on the specified directory.

My overall impression is "absolutely great", but still time for some hard questions. Smile

Ok, if I select to install the packages to custom location, then what about dependencies?
If I ie. install MoonBlaster that needs MAP package to be installed, does MSXHUB keep track where the packages were installed? (BTW I would suggest using this version of MB as it supports all drives instead of just A-B)

In this kind of package manager one nice feature would be also to automatically edit PATH variable setting in AUTOEXEC.BAT when requested... Or (to make things more easy) have something like \BATS where the package could place the startup scripts when tool in nature is something that user probably wants to have in PATH.

By fr3nd

Resident (54)

fr3nd's picture

19-11-2018, 14:34

Quote:

Ok, if I select to install the packages to custom location, then what about dependencies?

At the moment, MSXHub doesn't manage dependencies. If some package requires another one, it has to be installed manually.

For example, a lot of packages (mostly games) use sofarom to run. To manage it I created a BAT file which is going to look for SROM.COM in the default location (A:\SOFAROM\SROM.COM) and if it doesn't exist, it will look for it in the path. See alien8.bat for reference. The MoonBlaster BAT file does exactly the same for MAP.COM: moonblas.bat. Of course it's impossible to look for SROM.COM or MAP.COM in every path, so I think that way will work for most of the installations.

Quote:

(BTW I would suggest using this version of MB as it supports all drives instead of just A-B)

Great! I'll update the package :)

Quote:

In this kind of package manager one nice feature would be also to automatically edit PATH variable setting in AUTOEXEC.BAT when requested... Or (to make things more easy) have something like \BATS where the package could place the startup scripts when tool in nature is something that user probably wants to have in PATH.

Editing the AUTOEXEC.BAT file for every installed package would add a lot of complexity in the code and a bug could easily break it potentially making the MSX unbootable. I discarded that option at the beginning.

I also thought about creating a "BATS" directory but at the end I decided to go for the simpler solution for the first release and let the user to add the binary in the PATH variable manually. This can always be implemented in the future.

By Wolverine_nl

Paladin (992)

Wolverine_nl's picture

19-11-2018, 14:56

Love this fr3nd! I was already wondering about alternative install paths. Great to see it is possible. Smile

By NYYRIKKI

Enlighted (5045)

NYYRIKKI's picture

19-11-2018, 18:03

fr3nd wrote:

Editing the AUTOEXEC.BAT file for every installed package would add a lot of complexity in the code and a bug could easily break it potentially making the MSX unbootable. I discarded that option at the beginning.

Yes, that was kind of bad & complex idea, I agree.

Quote:

I also thought about creating a "BATS" directory but at the end I decided to go for the simpler solution for the first release and let the user to add the binary in the PATH variable manually. This can always be implemented in the future.

Yes, I can't help thinking about this as a good idea... Let's say that there would be variable like MSXHUB that defines the BATs directory. Now MSXHUB could use this as install log to see if ie. MAP has been already installed. First line of BAT could even contain REM line for package version in order to check if there is new version available in repository... and then user could use this in his PATH variable if he wishes to... Sounds like a win win situation. :-)

... but these are indeed ideas for some future versions. I'm happy to see it released like this. This just makes my brains to start spinning right away. Smile

By ToriHino

Master (245)

ToriHino's picture

19-11-2018, 18:39

fr3nd wrote:

ToriHino, thank you for your pull request. That was fast! I'll review it soon.
About the changes you did to let in run in Windows, I'm not a Windows expert, but would be possible to have them in a separate Makefile (ie: Makefile.win) so any user could use them?

I have to say it was mostly due to your excellent description on how contributions can be added, that really made things clear. Also really like the intrastructure you put together! I see if i can share the modified script for Windows as well.

By ToriHino

Master (245)

ToriHino's picture

19-11-2018, 23:52

I send a pull request with the Makefile for Windows, which can be used from the command prompt. Next to that i used GNU make for Windows from here.

By raymond

Champion (337)

raymond's picture

20-11-2018, 20:31

A nice. Hopefully a lot of software will be (made) available through MSX Hub!

Is it possible to run your own local MSX Hub (in case the MSX Hub website is unavailable)?

By fr3nd

Resident (54)

fr3nd's picture

21-11-2018, 09:47

Quote:

Is it possible to run your own local MSX Hub (in case the MSX Hub website is unavailable)?

Yes it is. You can modify the file A:\HUB\CONFIG\BASEURL or the environment variable BASEURL. The environment variable has precedence over the file. The default config is http://api.msxhub.com/api/

I haven't documented the protocol yet, but it's very simple.

In theory anyone could create his own software repository and use the HUB.COM client to install or uninstall the packages.

By savelij

Supporter (11)

savelij's picture

21-11-2018, 10:46

What version of sdcc is used for compilation? For msx-vi the version on the githab is indicated, for the hub it is not indicated. Maybe I was not looking there.

By konamiman

Paladin (954)

konamiman's picture

21-11-2018, 11:39

I'm happy to see that all the InterNestor and UNAPI stuff can be actually used for something really useful Smile Good work!

By fr3nd

Resident (54)

fr3nd's picture

21-11-2018, 19:47

Quote:

What version of sdcc is used for compilation?

It needs SDCC 3.7.0. The Makefile uses a docker image so you don't need it installed in your computer.

By fr3nd

Resident (54)

fr3nd's picture

24-11-2018, 17:29

I just released a new version of MSXHub (1.0.1). This new release allows to install packages with long list of files like the recently published MEMMAN package.

To update it just download the client from msxhub.com or just run hub install HUB or hub upgrade hub from your MSX

My MSX profile