pwitvoet / wadmaker

Command-line tools for making/extracting Half-Life textures and sprites
28 stars 2 forks source link

Linux support #4

Closed jonathanlinat closed 4 months ago

jonathanlinat commented 4 months ago

Hey @pwitvoet !

I am the author of Quake Level Design Starter Kit, a starter kit that consolidates a collection of tools and resources into one comprehensive package to facilitate the quick and easy creation of Quake-based maps with just a few clicks.

I am currently working on creating an equivalent for Goldsrc games and mods, a new project named Goldsrc Level Design Starter Kit. I really want to get wadmaker part of the starter kit.

The thing is that I am looking for both Windows and Linux support, and as far as I know, wadwaker is not Linux-compatible at this moment. I understand that would require to switch from .NET 4 to .NET 6, at least.

I am opening this issue to know how much effort will be required to make it compile and work on Linux (POSIX Systems).

pwitvoet commented 4 months ago

Hey Jonathan, thanks for showing interest!

Indeed, Linux support requires a migration to .NET 6. I was planning to do that as soon as I got back to WadMaker (I'm currently still working on a MESS update), but because you're asking I figured I might as well do it now. It shouldn't take more than a few hours, based on previous experience.

jonathanlinat commented 4 months ago

Hey Jonathan, thanks for showing interest!

Indeed, Linux support requires a migration to .NET 6. I was planning to do that as soon as I got back to WadMaker (I'm currently still working on a MESS update), but because you're asking I figured I might as well do it now. It shouldn't take more than a few hours, based on previous experience.

Thank you very much for that. Very appreciated. I'm looking forward with the upcoming changes 😀

UnBeatWaterGH commented 4 months ago

Atleast spritemaker works on Linux perfectly fine, you just need Mono.

UnBeatWaterGH commented 4 months ago

Hey Jonathan, thanks for showing interest!

Indeed, Linux support requires a migration to .NET 6. I was planning to do that as soon as I got back to WadMaker (I'm currently still working on a MESS update), but because you're asking I figured I might as well do it now. It shouldn't take more than a few hours, based on previous experience.

Requires .net 6? I just use Mono, mono spritemaker.exe, works like a charm.

jonathanlinat commented 4 months ago

Requires .net 6? I just use Mono, mono spritemaker.exe, works like a charm.

Hey!

What does Mono do exactly? Looks great.

However, I am looking to automatically compile the source code of Wad and Sprite Makers in a CI/CD pipeline for both Windows and Linux operating systems, Git checking out the content of their respective repository (aka https://github.com/pwitvoet/wadmaker), and then pack + release the resulted native binaries and files into two distinct structured artifacts, one per operating system.

This is what the automated pipeline of my Starter Kit does every Monday morning with other apps and tools already included.

pwitvoet commented 4 months ago

@jonathanlinat: I just finished the migration. I still need to do some testing to make sure I didn't break anything, hopefull I can get that done tomorrow, and then I'll make a release. I'm not a Linux user myself though, would you mind verifying that it works on Linux?

jonathanlinat commented 4 months ago

@jonathanlinat: I just finished the migration. I still need to do some testing to make sure I didn't break anything, hopefull I can get that done tomorrow, and then I'll make a release. I'm not a Linux user myself though, would you mind verifying that it works on Linux?

Wow! That's awesome. 🎉

Starting tonight, I'll write the corresponding CI/CD workflow to compile it and let you know.

pwitvoet commented 4 months ago

Requires .net 6? I just use Mono, mono spritemaker.exe, works like a charm.

I'm talking about native support, without dependencies. But it's good to hear that the current version is working with Mono. :)

However, I am looking to automatically compile the source code of Wad and Sprite Makers in a CI/CD pipeline for both Windows and Linux operating systems, Git checking out the content of their respective repository (aka https://github.com/pwitvoet/wadmaker), and then pack + release the resulted native binaries and files into two distinct structured artifacts, one per operating system.

I can't guarantee that using the latest commit will produce a 'consistent' program. It should compile without error, of course, but there may be unfinished features or breaking changes. It's better to use the latest tagged commit, or rather to use the latest release, because that contains additional files like licensing information, config files and the like (I haven't automated that process).

jonathanlinat commented 4 months ago

I can't guarantee that using the latest commit will produce a 'consistent' program. It should compile without error, of course, but there may be unfinished features or breaking changes. It's better to use the latest tagged commit, or rather to use the latest release, because that contains additional files like licensing information, config files and the like (I haven't automated that process).

No problem.

What about adopting a develop branch from now on, and then when your changes are stable there, you merge it to the master one and proceed to release the binaries?

jonathanlinat commented 4 months ago

Hey @pwitvoet! 👋🏼

Good news. I have been able to compile the source code and build Linux binaries locally using dotnet.

Now, I am not sure if WadMaker works as expected.

image image

pwitvoet commented 4 months ago

No, that's not expected behavior. I tracked it down to a breaking change I made while fixing some warnings due to the migration. It should be fixed now.

jonathanlinat commented 4 months ago

No, that's not expected behavior. I tracked it down to a breaking change I made while fixing some warnings due to the migration. It should be fixed now.

WadMaker works pretty well now.

image

I'll try it with SpriteMaker as soon as I have time tonight.

pwitvoet commented 4 months ago

I've gone over the changes again and done some more testing, and it looks like nothing else was broken. I've added a script to automate the release process and I just released v1.2.1, which contains a Linux variant.

I don't know whether I will adopt a develop/master branch approach - I would recommend using the latest release zip files instead.

jonathanlinat commented 4 months ago

@pwitvoet Thank you for the time and effort you spent on that requirement. Very appreciated!