The Cutter app is broken. It crashes on a Mac that doesn't have `/usr/local/opt/gettext/lib/libintl.8.dylib` installed. They probably never tested on a clean machine, `/usr/local/opt` doesn't exist there.
Not everyone uses Homebrew. Besides, there are already dozens of libraries in the app bundle, I don't see why they can't put this undocumented dependency inside the app bundle, too.
> As the core developer team, we have come to the conclusion that it is impossible for us to continue to pursue the goal of making radare2 better under the current circumstances and environment, and we decided to move forward on our own and fork the project.
I'm curious...if they are the core development team, what stopped them from changing the environment? Doesn't the core team on an open-source project kind of set the tone and culture for that project? Or am I missing something?
This is a really well-designed page. The website is full of nice-looking graphics, good web design, and convincing demo material. That's interesting for a fork that was announced a couple days ago.
A story is missing here, and I think it should be told. Unfortunately, I don't know what it is. However, people don't spontaneously decide to fork a project, and the details here are too vague for a value judgment.
Firstly, I'd like to thank the project for doing actual tangible work before announcing a fork. If you are going to fork a project over internal disagreements, you have to understand and appreciate that the world doesn't have time to dig into literally 10,000 different project's internal affairs to try to guess which side of a fight to take; most people would prefer to let the contributors decide who wins by virtue of mindshare, and then pick the technically better project as a result. Rizin is off to at least some start here, having at least one major feature and some aspirations.
Firstly, why did this project start? To get a better idea of what's going on, let's analyze the timeline.
The project appears to have kicked off on October 1st, at least symbolically. The first PR seems to be a rename:
What are the values of the Rizin org and what do they define as welcoming vs unwelcoming?
Since I don't know for sure, I can take a cursory glance at the types of PRs that exist within Rizin so far.
- Use Meson for macOS CI #3 -- A CI related change.
- Other renames in man and small places #4 -- Looks like more renames. Was pushed manually to master for some reason? Note also that it seems the primary branch has been renamed from 'master' since it was mentioned in this PR.
- Use R2PIPE_* -> RZ_PIPE_* env vars #5 -- More radare->rizon renames.
...
- Import patches #10 -- First import of Radare2 patches that I have noticed.
...
- Add new Projects Implementation #12 -- First major feature I can find.
...
- Create CODE_OF_CONDUCT.md #93 -- The project gains a code of conduct. Arguably the first interesting change that demonstrates the values of the project in some form.
...
- Change the "anal" abbreviation to "Analysis" in Code #117 -- December 6th. Interestingly, the source branch 'no-more-anal', reads a lot like a joke of a similar fashion to what is apparently unacceptable. This PR is the next change that demonstrates the values of the project.
- Add a fortune #118 -- "Rizin is the vegan pineapple pizza of reverse engineering tools." That's funny. I wonder if that's a bit of tongue-in-cheek self-awareness about the optics of forking a project over "ideological" disagreements.
...Ultimately, most of the PRs fall into the category of:
- 21 PRs: CI/infrastructure changes.
- 18 PRs: importing Radare2 changes.
- 9 PRs: renaming Radare2 -> Rizin
...of the 100 or so PRs. A lot of the others are minor changes like documentation updates, but it's hard to enumerate them into groups easily.
After surveying the PRs, it is no clearer exactly what motivates the project.
Searching through Radare PRs get no closer. Looking for PRs from around the time the project is created, I don't see many points of contention. I see some other discussions about fortunes but really not many. Searching through issues, much doesn't stand out. Fortunes doesn't appear to come up much in issues, with the search returning nothing from this year.
---
With that excavation out of the way, I'd like to turn my attention to the claim that Rizin is made up of "core Radare2 developers." This should be relatively easy to confirm. Firstly, we can look at the developers liste...
hi, I am condret, one of the core developers of radare2.
I'd like to state here that I do not intend to contribute to rizin and instead will stay at radare2 and become more active again. That is mostly because I disagree with rizin-developers ' perspective on what a welcoming and open community is and how to achieve that, but also about how this fork was created and about technical differences too.
A quick update. I think I've got a better picture of what's going on.
Firstly, the fortunes mess. It turns out that this is unrelated to the Rizin fork. That fortunes PR happened because of a tweet, which gained moderate popularity, on November 26th, criticizing the fortunes.nsfw file. (Please do not harass this person over their tweet.) ...which occurred after the fork. As far as I can ascertain, the fortunes mess simply doesn't play into this. Unfortunately, this same person seems to think the fork is about that, which is understandable, due to the apparent timelines. On December 6th, they accused Rizin of being an elaborate troll. (I repeat: please do not try to find these tweets and harass them. Disagree in your head if you need to.) THIS tweet is the source of the Reddit comment that is so intriguing. But it's wrong. This isn't about fortunes.nsfw. The Rizin announcement may be vague, but it's honest: it's really about major disagreements, both technical and otherwise. But I will get to that later.
---
OK, part 2. I was wrong to conclude that the Github team was representative of all of the users that are moving to Rizin. It turns out it's more.
So far, you can additionally see pull requests from kazarmy (#2 contributor to radare,) yossizap (#11 contributor to radare.) In addition, because this fork is so relatively new, there are almost certainly other developers who have moved or will move over. An especially strong signal of this is how many of the developers who are high up in the contributors list do not appear recently in the Radare2 pull requests; a majority of open pull requests right now are actually from pancake themselves.
In addition, today I can see there are more users on the GitHub team, including Cutter developer "karliss" and Github user "kazarmy", Khairul Azhar Kasmiran. In addition, we can now see user "officialcjunior", Aswin C, one of the top contributors to the r2book in the last year.
---
And finally. The real reason. To most people reading these comments, we are outsiders, but there is a clear sentiment within the r2 community that it is unwelcoming, and there is some strong evidence for this.
For example, there was apparently, at some point, a repository dedicated to... collecting Radare2 hate into Github issues. This is oddly condescending, but what's more concerning is that this seemed to be a way of getting back at anyone who said anything negative about the project.
Mention of r2hate exists on social media. A very well-respected engineer also noted, "...i've been informed that they coped by mocking me in private." Interesting indeed.
If you keep digging you can find more and more evidence that the unprofessionalism of how radare2 was being ran was becoming a drain on the project, and that the issues that lead to its forking are multi-faceted, but absolutely include technical disagreements.
Here are some quotes. I have changed the wording slightly to discourage people from harassing folks, but you can find them if you try hard enough. If you must, please do not interact; it's bad netiquette. I'm just trying to illustrate the problem.
> ignoring everyone's thoughts or feelings or ideas when you don't "get" them 100% is part of why people were calling you an asshole
> In all seriousness that is unbelievably childish. I can just imagine them linking to this exact tweet in one of those "issues" and chuckling about how we're the ones being dicks here without realizing the irony of posting "hatemail".
You can find quotes and threads about it all over. And some of them are people I really respect and trust.
Side question : has there ever been a project forked over purely political / social grounds ? Like republicans vs democrats, progressists vs conservatives, poor vs rich, black vs white, etc ?
I’m not talking about software politics here (licence, business model) but rather « real world » politics
With the pace that Cutter developers have been delivering improvements and with r2ghidra developers being onboard with this fork, I think Rizin is the project to watch going forward.
13 comments
[ 393 ms ] story [ 1207 ms ] threadI'm curious...if they are the core development team, what stopped them from changing the environment? Doesn't the core team on an open-source project kind of set the tone and culture for that project? Or am I missing something?
The core team is still at r2
A story is missing here, and I think it should be told. Unfortunately, I don't know what it is. However, people don't spontaneously decide to fork a project, and the details here are too vague for a value judgment.
Firstly, I'd like to thank the project for doing actual tangible work before announcing a fork. If you are going to fork a project over internal disagreements, you have to understand and appreciate that the world doesn't have time to dig into literally 10,000 different project's internal affairs to try to guess which side of a fight to take; most people would prefer to let the contributors decide who wins by virtue of mindshare, and then pick the technically better project as a result. Rizin is off to at least some start here, having at least one major feature and some aspirations.
Firstly, why did this project start? To get a better idea of what's going on, let's analyze the timeline.
The project appears to have kicked off on October 1st, at least symbolically. The first PR seems to be a rename:
https://github.com/rizinorg/rizin/pull/2
What are the values of the Rizin org and what do they define as welcoming vs unwelcoming?
Since I don't know for sure, I can take a cursory glance at the types of PRs that exist within Rizin so far.
- Use Meson for macOS CI #3 -- A CI related change.
- Other renames in man and small places #4 -- Looks like more renames. Was pushed manually to master for some reason? Note also that it seems the primary branch has been renamed from 'master' since it was mentioned in this PR.
- Use R2PIPE_* -> RZ_PIPE_* env vars #5 -- More radare->rizon renames.
...
- Import patches #10 -- First import of Radare2 patches that I have noticed.
...
- Add new Projects Implementation #12 -- First major feature I can find.
...
- Create CODE_OF_CONDUCT.md #93 -- The project gains a code of conduct. Arguably the first interesting change that demonstrates the values of the project in some form.
...
- Change the "anal" abbreviation to "Analysis" in Code #117 -- December 6th. Interestingly, the source branch 'no-more-anal', reads a lot like a joke of a similar fashion to what is apparently unacceptable. This PR is the next change that demonstrates the values of the project.
- Add a fortune #118 -- "Rizin is the vegan pineapple pizza of reverse engineering tools." That's funny. I wonder if that's a bit of tongue-in-cheek self-awareness about the optics of forking a project over "ideological" disagreements.
...Ultimately, most of the PRs fall into the category of:
- 21 PRs: CI/infrastructure changes.
- 18 PRs: importing Radare2 changes.
- 9 PRs: renaming Radare2 -> Rizin
...of the 100 or so PRs. A lot of the others are minor changes like documentation updates, but it's hard to enumerate them into groups easily.
After surveying the PRs, it is no clearer exactly what motivates the project.
Searching through Radare PRs get no closer. Looking for PRs from around the time the project is created, I don't see many points of contention. I see some other discussions about fortunes but really not many. Searching through issues, much doesn't stand out. Fortunes doesn't appear to come up much in issues, with the search returning nothing from this year.
---
With that excavation out of the way, I'd like to turn my attention to the claim that Rizin is made up of "core Radare2 developers." This should be relatively easy to confirm. Firstly, we can look at the developers liste...
Firstly, the fortunes mess. It turns out that this is unrelated to the Rizin fork. That fortunes PR happened because of a tweet, which gained moderate popularity, on November 26th, criticizing the fortunes.nsfw file. (Please do not harass this person over their tweet.) ...which occurred after the fork. As far as I can ascertain, the fortunes mess simply doesn't play into this. Unfortunately, this same person seems to think the fork is about that, which is understandable, due to the apparent timelines. On December 6th, they accused Rizin of being an elaborate troll. (I repeat: please do not try to find these tweets and harass them. Disagree in your head if you need to.) THIS tweet is the source of the Reddit comment that is so intriguing. But it's wrong. This isn't about fortunes.nsfw. The Rizin announcement may be vague, but it's honest: it's really about major disagreements, both technical and otherwise. But I will get to that later.
---
OK, part 2. I was wrong to conclude that the Github team was representative of all of the users that are moving to Rizin. It turns out it's more.
So far, you can additionally see pull requests from kazarmy (#2 contributor to radare,) yossizap (#11 contributor to radare.) In addition, because this fork is so relatively new, there are almost certainly other developers who have moved or will move over. An especially strong signal of this is how many of the developers who are high up in the contributors list do not appear recently in the Radare2 pull requests; a majority of open pull requests right now are actually from pancake themselves.
In addition, today I can see there are more users on the GitHub team, including Cutter developer "karliss" and Github user "kazarmy", Khairul Azhar Kasmiran. In addition, we can now see user "officialcjunior", Aswin C, one of the top contributors to the r2book in the last year.
---
And finally. The real reason. To most people reading these comments, we are outsiders, but there is a clear sentiment within the r2 community that it is unwelcoming, and there is some strong evidence for this.
For example, there was apparently, at some point, a repository dedicated to... collecting Radare2 hate into Github issues. This is oddly condescending, but what's more concerning is that this seemed to be a way of getting back at anyone who said anything negative about the project.
https://web.archive.org/web/20180612221427if_/https://github...
Mention of r2hate exists on social media. A very well-respected engineer also noted, "...i've been informed that they coped by mocking me in private." Interesting indeed.
If you keep digging you can find more and more evidence that the unprofessionalism of how radare2 was being ran was becoming a drain on the project, and that the issues that lead to its forking are multi-faceted, but absolutely include technical disagreements.
Here are some quotes. I have changed the wording slightly to discourage people from harassing folks, but you can find them if you try hard enough. If you must, please do not interact; it's bad netiquette. I'm just trying to illustrate the problem.
> ignoring everyone's thoughts or feelings or ideas when you don't "get" them 100% is part of why people were calling you an asshole
> In all seriousness that is unbelievably childish. I can just imagine them linking to this exact tweet in one of those "issues" and chuckling about how we're the ones being dicks here without realizing the irony of posting "hatemail".
You can find quotes and threads about it all over. And some of them are people I really respect and trust.
There is also some interesting discours...
I’m not talking about software politics here (licence, business model) but rather « real world » politics