philippgille / serve

serve starts a simple temporary static file server in your current directory and prints your IP address to share with colleagues
Mozilla Public License 2.0
154 stars 15 forks source link

serve 0.3.0 fails to run on mac os x #27

Closed hellt closed 5 years ago

hellt commented 5 years ago

Bug description

serve 0.3.0 fails to start on Mac OS X:

$ serve0.3.0
Killed: 9

Reproduction

curl -ssL https://github.com/philippgille/serve/releases/download/v0.3.0/serve_v0.3.0_macOS_x64 > ~/bin/serve && chmod a+x ~/bin/serve

Info

Example:

  • Version: 0.3.0
  • Operating system: Mac OS X 10.13.6
philippgille commented 5 years ago

Thanks for the bug report, I will look into this!

philippgille commented 5 years ago

Found the issue: It seems that UPX (the executable "shrinker" that I use to make the Go executable files smaller) has an issue in version v3.95.

I tried serve in three variants on macOS High Sierra: v0.2.1 shrinked, v0.3.0 shrinked and v0.3.0 original. Only v0.3.0 shrinked didn't work, so it's not a difference if its shrinked or not in general, but I probably built v0.2.1 with UPX v3.94.

It seems to be a known issue of UPX ve.95, see: https://github.com/upx/upx/issues/222

I'll think about whether I'll use some development version of UPX, where the issue seems to be fixed, or release serve v0.3.1 without using UPX and wait for the upcoming UPX v3.96 release to use it again.

I'll also improve my testing before releasing a version. I tested v0.2.1 on all three operating systems, but v0.3.0 only on Windows and Linux, which is bad. The CI servers also only build and test on Windows and Linux. But Travis CI supports macOS builds by now: https://docs.travis-ci.com/user/reference/osx/. I should look into that.

philippgille commented 5 years ago

I released a new version that contains (only) the fix for this issue: https://github.com/philippgille/serve/releases/tag/v0.3.1

The download link is https://github.com/philippgille/serve/releases/download/v0.3.1/serve_v0.3.1_macOS_x64

It should also be installable via Homebrew: brew install philippgille/tap/serve

I also changed the continuous integration so that Travis CI builds and tests on macOS, while I added CircleCI for building and testing on Linux (which was previously done on Travis CI). So there are now 3 different CI server providers being used and they cover all three major operating systems. (I could have used Travis CI to build for both, macOS and Linux, but I wanted to try out CircleCI anyway and also they're much faster than Travis CI, but Travis CI is the only one with a free macOS build server)

philippgille commented 5 years ago

I forgot to update the version number in the app, so in v0.3.1 when using serve -v it reports "v0.3.0". I fixed that in v0.3.2. (I rather release a new version than moving a git tag or overwriting existing commits on the master branch)

So please check out https://github.com/philippgille/serve/releases/download/v0.3.2/serve_v0.3.2_macOS_x64

philippgille commented 5 years ago

@hellt: Hi, did you try out the new release yet? I'd love to know if it works for you now, Then I can close this issue.

hellt commented 5 years ago

@philippgille yes, v0.3.2 work for me. Thanks for a quick fix!