Welcome to Vifm Q&A, where you can ask questions about Vifm usage. Registration is optional, anonymous posts are moderated. GitHub or Google logins are enabled.

Can't build on macOS Sierra

0 votes
asked Feb 26 in vifm by anonymous

I submitted a PR for brew to bump the formula to 0.10. There are errors for the sierra build and we don't seem to get it merged. This is the third PR.

Any help will be much appreciated.

Build log is here

commented Feb 27 by xaizek

I tried to reproduce the failure on Travis-CI, but everything works there with various versions. The log alone doesn't give enough information to figure out what exactly is the reason, it usually needs some debugging. However, it looks like tests are run in parallel, which should be fine, but maybe try doing make check -j1.

commented Feb 27 by xaizek

Also tried building on another 10.12 system and tests pass there too.

1 Answer

0 votes
answered Feb 27 by anonymous
selected Mar 3 by xaizek
 
Best answer

Unfortunately the change to the make check didn't seem to fix it. The build failed.

Here's the mojave build. Doesn't seem to contain much information to help debugging the issue though.

Since you are able to build on sierra, but brew's jenkins can't, could it be any dependency that needs to be installed first for the new version? v0.9.1 is ok on sierra.

commented Feb 28 by xaizek

My bad, it still ran in parallel due to $MAKEFLAGS=-j4 (will MAKEFLAGS= make check work on OS X?). I can't reproduce it with parallel build, so maybe it has nothing to do with it.

Since you are able to build on sierra, but brew's jenkins can't, could it be any dependency that needs to be installed first for the new version?

There are no new dependencies. I don't think there were any changes for OS X either. Tests that fail do file operations. So far it seems that when this happens:

Assertion failed: (ops->current <= ops->total && "Current and total are out of sync."), function ops_advance, file ops.c, line 242.

Core file is generated, which breaks other tests. The reason why other tests are run is probably that failed a thread? It would be weird, but maybe it works this way on OS X.

If you're going to try another build, maybe add find tests/sandbox command after make check to see list of files left after running tests. Maybe that will give some information.

commented Mar 1 by anonymous

Didn't notice the MAKEFLAGS either. So I have disabled the MAKEFLAGS now, but made no difference

The find command doesn't work because it's creating the tests in a tmp folder I believe, which I cannot find its location. Is there a way for the tests to be generated on a subfolder in --prefix?

commented Mar 1 by xaizek

find tests/sandbox should work. It's path relative to the source tree. If make check works, find tests/sandbox should work too, I thought you can just add it after make check (or maybe chain it like make check || (find test/sandbox && false)) to get result in the log.

Is there a way for the tests to be generated on a subfolder in --prefix?

It wasn't the intent, but this might work:

make SANDBOX_PATH=/desired/path/to/sandbox check

By the way, I started getting some weird failures on 10.12 seemingly for now reason at all. The same test suite fails, but in different tests. I'm not done figuring out where exactly it fails, but it seems to be stable. There is a chance that this is related to the builder issues.

commented Mar 1 by xaizek

Try applying this patch before the build.

commented Mar 1 by anonymous

The find doesn't produce any results. I tried similar to how you mentioned. Since I am testing it through brew as I don't have Sierra, it could be something to do with that.

Ohh, at least you are able to reproduce it.

Thank you for the patch, but unfortunately I am getting this error
error: patch failed: src/ui/ui.c:345
error: src/ui/ui.c: patch does not apply

I initially created a question here because I didn't know if this was worth creating an issue in git, but seeing there could be a problem after all, do you think it's worth creating it? Otherwise I am happy to wait for a 0.10.1 patch and update the formula afterwards.

commented Mar 2 by xaizek

Ohh, at least you are able to reproduce it.

I saw an issue, but I don't know if that was the same one or not.

Thank you for the patch, but unfortunately I am getting this error

Strange, I don't have any trouble applying it to unpacked v0.10 sources with patch -p1 < patch.file in its root. Please check again, it should work.

seeing there could be a problem after all, do you think it's worth creating it?

It doesn't matter that much as it's easy to close it. Although maybe some OS X user there would be able to reproduce it.

I am happy to wait for a 0.10.1 patch

The issue I found doesn't affect normal use of vifm, it's a problem with running tests.

commented Mar 2 by anonymous

The patch was working directly, but not in brew. I followed their directions and used git diff, and with that diff it then worked.

Now the tests are all passing, thank you :)

My question still remains. What I meant is that the patch is required to fix the sierra tests, so until it is upstream it must be applied for every version onwards. The problem is that the patch is specific to the current revision, hence it will easily break in the future. Don't think me or the brew team will be able to maintain the patches.
Wouldn't it be better to fix this upstream?

commented Mar 2 by xaizek

Now the tests are all passing, thank you :)

Great news, thanks for getting this done.

Wouldn't it be better to fix this upstream?

Of course it will be fixed upstream, I just meant that it doesn't justify an extra bug-fix release. Applying a patch during packaging seems to be enough in this case.

commented Mar 20 by anonymous

Unfortunately I cannot get the PR to be merged. But thanks a lot for your help.

It is nice to see this kind of involvement.

If you would like to make a bug report or feature request consider using GitHub, SourceForge or e-mail. Posting such things here is acceptable, but this is not a perfect place for them.
...