Skip to content
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

Migrate to "afl++" from "afl" #766

Merged
merged 2 commits into from
Jan 28, 2021
Merged

Conversation

ilammy
Copy link
Collaborator

@ilammy ilammy commented Jan 27, 2021

The original afl has been abandoned and is not maintained since 2017. afl++ is its successor. Since it's a fork, it has mostly compatible command line, and more features.

The original afl is currently being phased out from distributions. In particular, it's gone from whatever repo list GitHub Actions use, breaking our build. Migrate to afl++ instead.

Not all operating systems ship with afl++ though. For example, it's still not available in binary form on macOS via Homebrew. Therefore, don't jump the gun and don't update the Makefile to use afl++-only features. (However, it would be nice to use them if available.)


The timing could not have been better! GitHub Actions broke the build again... I guess it's the “upgrade January” for them.

I'm tired of this so this is the last PR that I submit or merge this week. If it's red then it's red.

Checklist

  • Change is covered by automated tests
  • Changelog is updated (in case of notable or breaking changes)

The original "afl" [1] has been abandoned and is not maintained since
2017. "afl++" [2] is its replacement. Since it's a fork, it has mostly
compatible command line, and more features.

[1]: http://lcamtuf.coredump.cx/afl/
[2]: https://github.com/AFLplusplus/AFLplusplus

The original afl is currently being phased out from distributions.
In particular, it's gone from whatever repo list GitHub Actions use,
breaking our build. Migrate to "afl++" instead.

Not all operating systems ship with "afl++" though. For example, it's
still not available in binary form on macOS via Homebrew. Therefore,
don't jump the gun and don't update the Makefile to use "afl++"-only
features. (However, it would be nice to use them if available.)
@ilammy ilammy added core Themis Core written in C, its packages infrastructure Automated building and packaging labels Jan 27, 2021
@ilammy ilammy requested review from shadinua and a team January 27, 2021 12:04
@iamnotacake
Copy link
Contributor

If it's red then it's red.

Well, you were not wrong. Unfortunately. Though it has nothing to do with your changes, which are good IMO.

Processing triggers for libc-bin (2.31-0ubuntu9.1) ...
E: Could not configure 'libc6:i386'. 
E: Could not perform immediate configuration on 'libgcc-s1:i386'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)
Error: Process completed with exit code 100.

Problems with non-interactive 32-bit libc installation on Ubuntu 20.04? 🤔

@ilammy
Copy link
Collaborator Author

ilammy commented Jan 27, 2021

Oh well... It worked in my fork before I created a PR.

IDK, just let's wait until GitHub Actions get their act together and try rerunning the build tomorrow, or later.

@vixentael
Copy link
Contributor

I restarted GHA, but it's still failing with the same error.

Let's wait tomorrow indeed ¯_(ツ)_/¯

@ilammy
Copy link
Collaborator Author

ilammy commented Jan 28, 2021

It worked in my fork before I created a PR.

Fun fact: ubuntu-latest means 18.04 image in my fork and 20.04 here in the main repo.

Docs say that ubuntu-latest should be 18.04, with 20.04 being provided as a preview.

It works with 18.04 and does not work with 20.04.

Move fast, break things ¯\_(ツ)_/¯

As noted in the comment, GitHub Actions runners are schizophrenic and
sometimes believe that they come from the future where the latest Ubuntu
image works correctly. Don't let them be fooled, use 18.04 for now.
@ilammy ilammy merged commit 0c6a44d into cossacklabs:master Jan 28, 2021
@ilammy ilammy deleted the afl-plus-plus branch January 28, 2021 11:02
@ilammy ilammy mentioned this pull request Feb 2, 2021
1 task
ilammy added a commit that referenced this pull request Feb 3, 2021
* Migrate to "afl++" from "afl"

The original "afl" [1] has been abandoned and is not maintained since
2017. "afl++" [2] is its replacement. Since it's a fork, it has mostly
compatible command line, and more features.

[1]: http://lcamtuf.coredump.cx/afl/
[2]: https://github.com/AFLplusplus/AFLplusplus

The original afl is currently being phased out from distributions.
In particular, it's gone from whatever repo list GitHub Actions use,
breaking our build. Migrate to "afl++" instead.

Not all operating systems ship with "afl++" though. For example, it's
still not available in binary form on macOS via Homebrew. Therefore,
don't jump the gun and don't update the Makefile to use "afl++"-only
features. (However, it would be nice to use them if available.)

* Pin "fuzzing" job to Ubuntu 18.04

As noted in the comment, GitHub Actions runners are schizophrenic and
sometimes believe that they come from the future where the latest Ubuntu
image works correctly. Don't let them be fooled, use 18.04 for now.

(cherry picked from commit 0c6a44d)

Ignore changes in CHANGELOG.md, there is no "Unreleased" section on the
"stable" branch. It will get here in due time.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core Themis Core written in C, its packages infrastructure Automated building and packaging
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants