LouisBrunner / valgrind-macos

A valgrind mirror with latest macOS support
GNU General Public License v2.0
1.15k stars 59 forks source link

Provide more specificity in README regarding command-line tools update/install #28

Open zardini123 opened 3 years ago

zardini123 commented 3 years ago

When attempting to install this beautiful macOS installment of valgrind on my macOS 10.14.6 machine, I was met with the same compile issues as https://github.com/LouisBrunner/valgrind-macos/issues/6. After the fail to compile, Brew reported via an error that:

Error: A newer Command Line Tools release is available.
Update them from Software Update in System Preferences or run:
  softwareupdate --all --install --force

I ran the softwareupdate command, resulting in macOS Mojave security updates installing, and many others. No command-line tools update ever was installed. Running the same 'softwareupdate' command again reports "No updates are available."

I then tried the second line in the error that Homebrew reports:

If that doesn't show you any updates, run:
  sudo rm -rf /Library/Developer/CommandLineTools
  sudo xcode-select --install

After reinstall, Homebrew still complained about an outdated command-line tools (along with valgrind not installing).

I have Xcode updated to the newest version for macOS 10.14.6, which is currently 11.3.1, so Brew does not report any issues with that.

I then went to the last and final line:

Alternatively, manually download them from:
  https://developer.apple.com/download/more/.

My thoughts was "well if softwareupdate does not report any new version, why would I need to manually download it?" Well, I was wrong.

According to this StackExchange post, one is able to get their currently installed CI Tools version number via running pkgutil --pkg-info=com.apple.pkg.CLTools_Executables.

package-id: com.apple.pkg.CLTools_Executables
version: 10.3.0.0.1.1562985497
...

10.3.0? Darn that's really old! Following https://developer.apple.com/download/more/, I downloaded Command_Line_Tools_for_Xcode_11.3.1.dmg, installed it, and now the same command reports:

version: 11.3.1.0.1.1576735732

Re-running brew install --HEAD LouisBrunner/valgrind/valgrind now properly installs valgrind!


Conclusion/TL;DR I'd suggest that the README more clearly point out that CI tools version matters greatly. Yes the README currently states "make sure you have the latest Xcode/CLI tools installed." Though with how its phrased, I thought it was saying simply if you have the CLI tools installed it will work. I didn't realize version number was that important.

Even with following the link to https://github.com/LouisBrunner/valgrind-macos/issues/6#issuecomment-667587385, I never thought that my version via installing with softwareupdate was really out-dated. I was thinking Homebrew was thinking I needed a CLI tools version for a newer macOS or something.

Therefore I'd also suggest telling people in the README to run the pkgutil command, checking to see if their version number is equal to the Xcode version number. If the version numbers do not match, they should manually install the newest .dmg from the Apple developer website instead of via softwareupdate.

Thank you so much for reading! I hope these suggestions will help others in the future not go in loops as much as I did, and also make people like me not make assumptions about softwareupdate!

LouisBrunner commented 3 years ago

Hi @zardini123,

Thanks a lot for this detailed report! Would you consider contributing the README changes yourself? I can do it too but I'd like to be sure it's as straight-forward and understandable as possible (which isn't my forte!).

zardini123 commented 3 years ago

Would you consider contributing the README changes yourself?

Sure thing! I probably have time this weekend. I'll write up a draft, and open a PR once ready to gather your ideas and suggestions!

Being I'm making changes to the README, I was wondering something. What exactly is the macOS 10.14.4 subsection under section "tests" all about? Should this instead list the resulting tests of Mojave 10.14.6? Another question I have is how could I run or generate these tests on my system? I can also add the answer to some of these when I work on the README.

LouisBrunner commented 3 years ago

Ah! One of the feedback I got when trying to get my patches merged upstream is that they break test (or in some cases, they make test which break silently break more explicitly). So I started collecting a list of failing tests on different versions so I could check when changes were improving the situation or worsening it (so many tests are broken that it's not a question of "do all tests pass or not" unfortunately...). I still have a laptop using 10.14.6 so I can regenerate these tests, I am just only focusing on 10.15 as this is the version available in GitHub Actions so don't worry about that.

If you want to run them locally anyway, you need to check out the code and run make regtest (it might take a while and even block on some tests unfortunately!).