howl icon indicating copy to clipboard operation
howl copied to clipboard

Windows

Open refi64 opened this issue 9 years ago • 10 comments

Closes #201. I still have to figure out why the tests are failing on Travis, but I figured I might as well put this up so that you guys can review.

TL;DR of this pull request: Windows is weird.

refi64 avatar Sep 29 '16 01:09 refi64

Build's green now! :D

I was thinking we should probably add AppVeyor CI to make sure Windows doesn't break; it has support for MSYS2.

refi64 avatar Sep 29 '16 16:09 refi64

Re AppVeyor, that would be great. The specs are bound to break pretty fast by mistake otherwise.

nilnor avatar Oct 12 '16 10:10 nilnor

Well, at some point I guess I broke processes again...ugh...

refi64 avatar Nov 06 '16 01:11 refi64

Wow, this is really, really weird...

So, TerminateProcess kind of kills the process, except it doesn't. Apparently, the process gets "killed", but it doesn't actually stop running. If I run something like sleep 2; touch, the exit callback is called, but stdout and stderr stay waiting for sleep 2 to finish. But touch is never run. So it appears the shell is killed, but it waits for the first process to finish first.

And it seems that read_async can actually return an EOF error, but ret never becomes nil. So, my idea:

  • Follow what @nilnor said about doing the callbacks. Again.
  • Put a pcall around read_async, but make sure it was actually an EOF error, not just swallowing everything.

How does that sound?

refi64 avatar Nov 06 '16 02:11 refi64

I would like to try your Windows patch (and possibly add support for cross-compilation in .travis.yml).

Could you please rebase your branch on current master? Thanks.

markus-oberhumer-forks avatar Dec 30 '16 13:12 markus-oberhumer-forks

@kirbyfan64 - is this PR still good? Maybe we can merge even if not everything on windows is fixed?

shalabhc avatar Apr 03 '17 16:04 shalabhc

@shalabhc Uhh...yeah...

I still can't figure out what the hell is going on with processes. Meanwhile, I just shoved a nasty retry-three-times loop when the troublesome error appears. Messy, but Windows I/O seems to generally only be solvable with retry loops.

As an aside, here's a zip file with the binaries:

https://www.dropbox.com/s/3d3extidx56h1t7/howl.zip?dl=0

(created using the new make windist) and a nice, shiny Inno Setup installer (in wininst.iss):

https://www.dropbox.com/s/7whewn5d43ug6o8/howl-setup.exe?dl=0

refi64 avatar Apr 28 '17 22:04 refi64

@kirbyfan64 tried both the zip file and the installer on my windows 10 machine. The executable just exited without any error, nothing appeared on the screen. (PS: I don't have msys2 installed, thought maybe it is not needed for running it)

soapdog avatar May 30 '17 17:05 soapdog

Okay guys, this is really, really bad...

The problem

Basically, everything's broken again, especially since I got a new computer with an upgraded MSYS2 (since the old one kinda...met an unfortunate end):

  • Icons don't work anymore.
  • glib process crud is still broken.
  • Pixbufs don't work, even though I can see the symbols present in the resulting binary.
  • There's this persistent, ugly border that I can't get rid of.
  • I have legit tried to make a binary distribution for several hours, and I still cannot figure out why some (again pixbuf-related) DLLs aren't getting picked up.

Here's the fundamental problem I've noticed: using MSYS for this is never going to work correctly. The entire concept of a UNIX environment that's not really UNIX inside of Windows has caused nothing but endless pain, and I'm incredibly sick of trying to mess with it. It surprises me that these broken binaries are what the GTK+ project recommends using...

The new plan

Screw MSYS2.

I've stumbled upon this GTK+ building project. The new idea is to instead use Visual Studio for building. I have no clue how this is going to end up, but it can't possibly be any worse.

Meanwhile...

I literally set up Howl with my entire custom config to work flawlessly under Windows Subsystem for Linux w/ VcXsrv in under an hour. I'll probably write up somewhere how to install it, but if you're looking for a quick way to get Howl working under Windows until I get everything here working, this is probably the way to go.

refi64 avatar Oct 23 '17 15:10 refi64

@kirbyfan64 it sounds like you've had good success with the subsystem for Linux and VcXsrv. Could we (and I really mean you :)) do a detailed write-up of this that we can put on the site as installation instructions?

nilnor avatar Nov 17 '17 14:11 nilnor