New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add FreeBSD Travis #505

Merged
merged 10 commits into from Aug 22, 2017

Conversation

Projects
None yet
8 participants
@nurupo
Member

nurupo commented Mar 8, 2017

Just experimenting running FreeBSD in qemu and sshing into it.

This PR is not finished and is not ready for review yet.


This change is Reviewable

@nurupo nurupo changed the title from [WIP] Add FreeBSD Travis to Add FreeBSD Travis Mar 14, 2017

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Mar 14, 2017

Member

I think it's ready to review now.

Just a few notes:

  • The FreeBSD build currently fails because of the network headers issue which #473 fixes. After the fixes are merged, toxcore build successfully, but tests are failing. Do we want to put the FreeBSD build into Travis's Allowed Failures build group?

  • Currently, on every build job run, we try to update the FreeBSD system and its packages to the latest version and then store the VM image back in the Travis cache.

    • The run time of the build job can be reduced by about 4 minutes if we don't update the VM image in Travis's cache if there were no system or package updates. It's a bit non-trivial to do as you'd need to grep for output of the pkg upgrade command to differentiate the cases when there were package updates and when there weren't, but I don't have any sample output of when package updates happen, so I'm not sure what I should grep for.
    • The run time of the build job can be reduced by about 6 minutes if we don't update the system at all, apart from the initial setup. These 6 minutes include the previous said 4 minutes.
Member

nurupo commented Mar 14, 2017

I think it's ready to review now.

Just a few notes:

  • The FreeBSD build currently fails because of the network headers issue which #473 fixes. After the fixes are merged, toxcore build successfully, but tests are failing. Do we want to put the FreeBSD build into Travis's Allowed Failures build group?

  • Currently, on every build job run, we try to update the FreeBSD system and its packages to the latest version and then store the VM image back in the Travis cache.

    • The run time of the build job can be reduced by about 4 minutes if we don't update the VM image in Travis's cache if there were no system or package updates. It's a bit non-trivial to do as you'd need to grep for output of the pkg upgrade command to differentiate the cases when there were package updates and when there weren't, but I don't have any sample output of when package updates happen, so I'm not sure what I should grep for.
    • The run time of the build job can be reduced by about 6 minutes if we don't update the system at all, apart from the initial setup. These 6 minutes include the previous said 4 minutes.
@iphydf

This comment has been minimized.

Show comment
Hide comment
@iphydf

iphydf Mar 26, 2017

Member

Don't put it in the allowed failures group. Instead, put ­­|| true after the tests on freebsd. That way, we know it builds, even though the tests fail.

Member

iphydf commented Mar 26, 2017

Don't put it in the allowed failures group. Instead, put ­­|| true after the tests on freebsd. That way, we know it builds, even though the tests fail.

@iphydf iphydf modified the milestone: v0.1.8 Mar 26, 2017

@Zer0-One

This comment has been minimized.

Show comment
Hide comment
@Zer0-One

Zer0-One Mar 26, 2017

Member

@nurupo if you can find a way to create an updated image offline, and just fetch/run it, you can avoid having to do updates when travis runs.

Member

Zer0-One commented Mar 26, 2017

@nurupo if you can find a way to create an updated image offline, and just fetch/run it, you can avoid having to do updates when travis runs.

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Mar 27, 2017

Member

@iphydf This should do it?

Also rebased on master.

Member

nurupo commented Mar 27, 2017

@iphydf This should do it?

Also rebased on master.

@GrayHatter

This comment has been minimized.

Show comment
Hide comment
@GrayHatter

GrayHatter Apr 6, 2017

rebuild when the toxcore version changes?

GrayHatter commented Apr 6, 2017

rebuild when the toxcore version changes?

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Apr 6, 2017

Member

Rebuild what? Not sure what you are asking about.

Member

nurupo commented Apr 6, 2017

Rebuild what? Not sure what you are asking about.

@GrayHatter

This comment has been minimized.

Show comment
Hide comment
@GrayHatter

GrayHatter Apr 6, 2017

The run time of the build job can be reduced by about 6 minutes if we don't update the system at all,

GrayHatter commented Apr 6, 2017

The run time of the build job can be reduced by about 6 minutes if we don't update the system at all,

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Apr 6, 2017

Member

Sounds like a good idea, given we keep releasing often, such that the image won't get very out of date.

Member

nurupo commented Apr 6, 2017

Sounds like a good idea, given we keep releasing often, such that the image won't get very out of date.

@iphydf

This comment has been minimized.

Show comment
Hide comment
@iphydf

iphydf Apr 9, 2017

Member

Please enable the checkbox "Allow edits from maintainers." on the bottom right.

Member

iphydf commented Apr 9, 2017

Please enable the checkbox "Allow edits from maintainers." on the bottom right.

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Apr 10, 2017

Member

How about updating the FreeBSD system/packages every time there is a change in git tags? It's somewhat similar to updating it every time toxcore version changes.

Member

nurupo commented Apr 10, 2017

How about updating the FreeBSD system/packages every time there is a change in git tags? It's somewhat similar to updating it every time toxcore version changes.

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Apr 11, 2017

Member

@iphydf I will do the checkbox thing after I'm done with making the VM image update on git tag change.

Member

nurupo commented Apr 11, 2017

@iphydf I will do the checkbox thing after I'm done with making the VM image update on git tag change.

@iphydf iphydf modified the milestones: v0.1.8, v0.1.9 Apr 12, 2017

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Apr 13, 2017

Member

@iphydf clang's mutex analyzer in FreeBSD's build is complaining about mutexes.

Also, I'm not sure why hstox build keeps failing. It builds just fine in master, and I have rebased this PR on master. Did I accidentally break it in this PR?

Member

nurupo commented Apr 13, 2017

@iphydf clang's mutex analyzer in FreeBSD's build is complaining about mutexes.

Also, I'm not sure why hstox build keeps failing. It builds just fine in master, and I have rebased this PR on master. Did I accidentally break it in this PR?

@iphydf

This comment has been minimized.

Show comment
Hide comment
@iphydf

iphydf Jun 3, 2017

Member

@nurupo hstox should work after #449 is merged.

Member

iphydf commented Jun 3, 2017

@nurupo hstox should work after #449 is merged.

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Jun 4, 2017

Member

Restarted the FreeBSD build, as Travis got a bit messed up and showed log for one of the previous builds instead. Now you can see that it fails to build due to some static analysis on mutexes issue.

Member

nurupo commented Jun 4, 2017

Restarted the FreeBSD build, as Travis got a bit messed up and showed log for one of the previous builds instead. Now you can see that it fails to build due to some static analysis on mutexes issue.

@iphydf iphydf modified the milestones: v0.1.9, v0.1.10 Jun 6, 2017

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Aug 1, 2017

Member

It started failing on Travis out of a blue, due to no output in 10 minutes, which wasn't happening before, and it's such a pain to fix it, have been trying for a couple days now :\ Thinking that it's due to the pager that doesn't terminate, so I have put

'echo "export PAGER=cat" >> ~/.profile'

but apparently default FreeBSD shell doesn't read .profile? Now I have prefixed the problematic command with env PAGER=cat directly in-place, will see if that helps...

Member

nurupo commented Aug 1, 2017

It started failing on Travis out of a blue, due to no output in 10 minutes, which wasn't happening before, and it's such a pain to fix it, have been trying for a couple days now :\ Thinking that it's due to the pager that doesn't terminate, so I have put

'echo "export PAGER=cat" >> ~/.profile'

but apparently default FreeBSD shell doesn't read .profile? Now I have prefixed the problematic command with env PAGER=cat directly in-place, will see if that helps...

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Aug 2, 2017

Member

Ok, the FreeBSD script seems to work correctly, the build now fails due to a compiler error, so at least that's some progress. Next up is to fix the compilation error and hope there are no more of those.

Member

nurupo commented Aug 2, 2017

Ok, the FreeBSD script seems to work correctly, the build now fails due to a compiler error, so at least that's some progress. Next up is to fix the compilation error and hope there are no more of those.

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Aug 4, 2017

Member

Squashed commits, rebased on master, should be ready to review @iphydf.

Member

nurupo commented Aug 4, 2017

Squashed commits, rebased on master, should be ready to review @iphydf.

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Aug 4, 2017

Member

Toxcore tests fails horribly though, so I wouldn't expect toxcore to work on FreeBSD (how did someone manage to make ports of toxcore on FreeBSD?), so the next step would be for someone to fix toxcore so that the tests pass. Travis is set to succeed on failed FreeBSD tests not to disrupt other PRs.

Member

nurupo commented Aug 4, 2017

Toxcore tests fails horribly though, so I wouldn't expect toxcore to work on FreeBSD (how did someone manage to make ports of toxcore on FreeBSD?), so the next step would be for someone to fix toxcore so that the tests pass. Travis is set to succeed on failed FreeBSD tests not to disrupt other PRs.

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Aug 4, 2017

Member

I could give a little refactor to the bash script, I sometimes specify flags after arguments, which is not the correct order, but then I'm not sure which commit I would have to squash that change into, and it would probably conflict with other commits I have. I could make it as a separate commit, I guess.

Member

nurupo commented Aug 4, 2017

I could give a little refactor to the bash script, I sometimes specify flags after arguments, which is not the correct order, but then I'm not sure which commit I would have to squash that change into, and it would probably conflict with other commits I have. I could make it as a separate commit, I guess.

@thierry-FreeBSD

This comment has been minimized.

Show comment
Hide comment
@thierry-FreeBSD

thierry-FreeBSD Aug 5, 2017

@nurupo : the FreeBSD port is lagging to release 0.1.8, 0.1.9 is not portable enough and would require too much patches.

thierry-FreeBSD commented Aug 5, 2017

@nurupo : the FreeBSD port is lagging to release 0.1.8, 0.1.9 is not portable enough and would require too much patches.

@robinlinden

This comment has been minimized.

Show comment
Hide comment
@robinlinden

robinlinden Aug 5, 2017

Member

:lgtm_strong:


Reviewed 2 of 5 files at r1, 1 of 1 files at r4, 3 of 3 files at r5, 4 of 4 files at r6.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.


Comments from Reviewable

Member

robinlinden commented Aug 5, 2017

:lgtm_strong:


Reviewed 2 of 5 files at r1, 1 of 1 files at r4, 3 of 3 files at r5, 4 of 4 files at r6.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.


Comments from Reviewable

@robinlinden robinlinden modified the milestones: v0.1.11, v0.1.10 Aug 5, 2017

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Aug 6, 2017

Member

@thierry-FreeBSD do you patch 0.1.7 in order to make it work or does it work out of the box? Would be interesting to see the patches if you do patch it.

Member

nurupo commented Aug 6, 2017

@thierry-FreeBSD do you patch 0.1.7 in order to make it work or does it work out of the box? Would be interesting to see the patches if you do patch it.

@thierry-FreeBSD

This comment has been minimized.

Show comment
Hide comment
@thierry-FreeBSD

thierry-FreeBSD Aug 6, 2017

@nurupo : no patches ATM. When I commit patches to the ports tree, they are viewable from
https://svnweb.freebsd.org/ports/head/net-im/tox/files/

thierry-FreeBSD commented Aug 6, 2017

@nurupo : no patches ATM. When I commit patches to the ports tree, they are viewable from
https://svnweb.freebsd.org/ports/head/net-im/tox/files/

@nurupo nurupo referenced this pull request Aug 15, 2017

Merged

Release v0.1.10 #575

@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Aug 16, 2017

Member

@iphydf any day now

Member

nurupo commented Aug 16, 2017

@iphydf any day now

@robinlinden robinlinden assigned robinlinden and unassigned iphydf Aug 16, 2017

@endoffile78

This comment has been minimized.

Show comment
Hide comment
@endoffile78

endoffile78 Aug 19, 2017

Member

:lgtm_strong:


Reviewed 2 of 5 files at r1, 3 of 3 files at r5, 3 of 4 files at r6, 2 of 2 files at r7.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.


Comments from Reviewable

Member

endoffile78 commented Aug 19, 2017

:lgtm_strong:


Reviewed 2 of 5 files at r1, 3 of 3 files at r5, 3 of 4 files at r6, 2 of 2 files at r7.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.


Comments from Reviewable

@iphydf

iphydf approved these changes Aug 21, 2017

LGTM besides the typo corrections.

Show outdated Hide outdated other/travis/freebsd-install Outdated
Show outdated Hide outdated other/travis/freebsd-install Outdated
Show outdated Hide outdated other/travis/freebsd-install Outdated
Show outdated Hide outdated other/travis/freebsd-install Outdated
Show outdated Hide outdated other/travis/freebsd-install Outdated
{
rm -f screenlog.0
# Start emulator. 2000mb RAM should be enough, right? The build machine has over 7gb.

This comment has been minimized.

@iphydf

iphydf Aug 21, 2017

Member

This is great, and it's very good to know how much RAM we're using during the build. If this increases beyond the 2G in the VM, we may be doing something dodgy.

@iphydf

iphydf Aug 21, 2017

Member

This is great, and it's very good to know how much RAM we're using during the build. If this increases beyond the 2G in the VM, we may be doing something dodgy.

Show outdated Hide outdated other/travis/freebsd-install Outdated
Show outdated Hide outdated other/travis/freebsd-install Outdated
@nurupo

This comment has been minimized.

Show comment
Hide comment
@nurupo

nurupo Aug 22, 2017

Member

Fixed typos.

Member

nurupo commented Aug 22, 2017

Fixed typos.

@robinlinden

This comment has been minimized.

Show comment
Hide comment
@robinlinden

robinlinden Aug 22, 2017

Member

Reviewed 2 of 2 files at r7, 1 of 1 files at r8.
Review status: all files reviewed at latest revision, 8 unresolved discussions, some commit checks pending.


Comments from Reviewable

Member

robinlinden commented Aug 22, 2017

Reviewed 2 of 2 files at r7, 1 of 1 files at r8.
Review status: all files reviewed at latest revision, 8 unresolved discussions, some commit checks pending.


Comments from Reviewable

@robinlinden robinlinden merged commit 8f19c92 into TokTok:master Aug 22, 2017

4 of 6 checks passed

ci/circleci CircleCI is running your tests
Details
license/cla Contributor License Agreement is not signed yet.
Details
code-review/reviewable 1/1 LGTMs
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
coverage/coveralls Coverage increased (+0.5%) to 74.418%
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment