MSXHub released

MSXHub released

by fr3nd on 18-11-2018, 19:08
Обсуждение: Software
Языки:

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.

Комментарии (34)

By Pencioner

Scribe (1546)

Аватар пользователя Pencioner

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 (1450)

Аватар пользователя KdL

18-11-2018, 20:35

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

By x-nen Aivalahostia

Paragon (1530)

Аватар пользователя x-nen Aivalahostia

18-11-2018, 22:08

Nice tool, works fine!!!

By NYYRIKKI

Enlighted (6033)

Аватар пользователя NYYRIKKI

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

Paladin (826)

Аватар пользователя ToriHino

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

Expert (112)

Аватар пользователя fr3nd

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 (388)

Аватар пользователя MicroTech

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 (2473)

Аватар пользователя edoz

19-11-2018, 09:47

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

By fr3nd

Expert (112)

Аватар пользователя fr3nd

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 (6033)

Аватар пользователя NYYRIKKI

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

Expert (112)

Аватар пользователя fr3nd

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

Paragon (1160)

Аватар пользователя Wolverine_nl

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 (6033)

Аватар пользователя NYYRIKKI

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

Paladin (826)

Аватар пользователя ToriHino

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

Paladin (826)

Аватар пользователя ToriHino

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

Hero (631)

Аватар пользователя raymond

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

Expert (112)

Аватар пользователя fr3nd

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

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

Paragon (1194)

Аватар пользователя konamiman

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

Expert (112)

Аватар пользователя fr3nd

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

Expert (112)

Аватар пользователя fr3nd

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

By x1pepe

Master (149)

Аватар пользователя x1pepe

13-09-2019, 21:34

Hi!

Can't install it.
I type:

md A:\HUB
cd A:\HUB
hget http://msxhub.com/hub.com

... and I get :
*** unrecognized command

Nextor kernel version 2.1.0 alpha 2
Nextor.sys version 2.10
Command2.com version 2.44
My computer Philips NMS8280
SLOT1, Megaflashrom
SLOT 2, GR8NET.

Thanks.

By ducasp

Paladin (677)

Аватар пользователя ducasp

13-09-2019, 21:49

You need to have hget in the folder or in your path. It can be downloaded at:

https://www.konamiman.com/msx/networking/hget.com

By ducasp

Paladin (677)

Аватар пользователя ducasp

13-09-2019, 22:37

Or you can just get hub directly and copy it to hub folder and skip the hget step:

https://msxhub.com/hub.com

By x1pepe

Master (149)

Аватар пользователя x1pepe

13-09-2019, 23:17

Ok, thank you.
I will try tomorrow.

By x1pepe

Master (149)

Аватар пользователя x1pepe

14-09-2019, 12:40

Hget works well, and also Hub, but when I try install some file, I get:
Downloading file...
... But the files not download...

By OeiOeiVogeltje

Paragon (1427)

Аватар пользователя OeiOeiVogeltje

15-09-2019, 00:54

Brunilda did not download correctly
all i got was a .bat file

By fr3nd

Expert (112)

Аватар пользователя fr3nd

15-09-2019, 11:40

Could you run msxhub with the /d parameter and share the output here? Or better create an issue in github directly? https://github.com/fr3nd/msxhub/issues

By fr3nd

Expert (112)

Аватар пользователя fr3nd

15-09-2019, 11:42

I saw the brunilda package is wrong and it only contains the bat file... I'm currently on holidays with limited Internet access, but I'll do my best to fix it as soon as possible

By fr3nd

Expert (112)

Аватар пользователя fr3nd

15-09-2019, 12:12

Ok, I was able to fix the brunilda package and it should be working now Smile

By x1pepe

Master (149)

Аватар пользователя x1pepe

15-09-2019, 13:47

Thank you. I will try later.

By x1pepe

Master (149)

Аватар пользователя x1pepe

20-09-2019, 17:51

Ok, maybe with IDE SUNRISE, there's some errors but I didn't actualize it since I bought it in 2006.
HGET and HUB works pretty well on GR8NET + Flashjacks cartridge.
MsxHub it's a great app, congratulations.
One more question, HGET It's your or was created by Konamiman?

By fr3nd

Expert (112)

Аватар пользователя fr3nd

21-09-2019, 18:55

It's good to hear it's working properly now Smile

HGET is not mine. It was created by Konamiman and it was a big inspiration for the http download code in MSXHub. The source code is available here: https://github.com/Konamiman/MSX/blob/master/SRC/NETWORK/hget.c

By x1pepe

Master (149)

Аватар пользователя x1pepe

21-09-2019, 19:53

Programs like MSXHUB impulse the Msx to the real reality ... Internet.
Itś really cool. One more time... Congratulations.