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

Doxygen bottle is corrupted on Catalina #6539

Closed
5 tasks done
fxcoudert opened this issue Oct 6, 2019 · 10 comments
Closed
5 tasks done

Doxygen bottle is corrupted on Catalina #6539

fxcoudert opened this issue Oct 6, 2019 · 10 comments
Labels
in progress Maintainers are working on this outdated PR was locked due to age

Comments

@fxcoudert
Copy link
Member

  • are reporting a bug others will be able to reproduce and not asking a question. If you're not sure or want to ask a question do so on our Discourse: https://discourse.brew.sh
  • ran a brew command and reproduced the problem with multiple formulae? If it's a problem with a single, official formula (not cask) please file this issue at Homebrew/homebrew-core: https://github.com/Homebrew/homebrew-core/issues/new/choose. If it's a brew cask problem please file this issue at https://github.com/Homebrew/homebrew-cask/issues/new/choose. If it's a tap (e.g. Homebrew/homebrew-php) problem please file this issue at the tap.
  • ran brew update and can still reproduce the problem?
  • ran brew doctor, fixed all issues and can still reproduce the problem?
  • ran brew config and brew doctor and included their output with your issue?

Bug description

On Catalina CI nodes:

  • brew install --verbose --build-bottle doxygen (succeeds)
  • brew test --verbose doxygen (works)
  • brew bottle --verbose --json doxygen --keep-old

The bottle file produced contains an invalid doxygen binary, with many NUL bytes:

brew@Catalina ~ % tar xf doxygen--1.8.16.catalina.bottle.tar.gz doxygen/1.8.16/bin/doxygen
brew@Catalina ~ % xxd /usr/local/Cellar/doxygen/1.8.16/bin/doxygen | head -n 5           
00000000: cffa edfe 0700 0001 0300 0080 0200 0000  ................
00000010: 1300 0000 0808 0000 8580 2100 0000 0000  ..........!.....
00000020: 1900 0000 4800 0000 5f5f 5041 4745 5a45  ....H...__PAGEZE
00000030: 524f 0000 0000 0000 0000 0000 0000 0000  RO..............
00000040: 0000 0000 0100 0000 0000 0000 0000 0000  ................
brew@Catalina ~ % xxd ./doxygen/1.8.16/bin/doxygen | head -n 5
00000000: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000  ................

If I then reinstall from the bottle, brew test will fail as it cannot execute that binary. Note that brew test passes after the initial install (not installed from the bottle).

@fxcoudert
Copy link
Member Author

This appears to be a system tar bug:

brew@Catalina ~ % cd /usr/local/Cellar 
brew@Catalina Cellar % file doxygen/1.8.16/bin/doxygen
doxygen/1.8.16/bin/doxygen: Mach-O 64-bit executable x86_64
brew@Catalina Cellar % xxd doxygen/1.8.16/bin/doxygen | head -n 5
00000000: cffa edfe 0700 0001 0300 0080 0200 0000  ................
00000010: 1300 0000 0808 0000 8580 2100 0000 0000  ..........!.....
00000020: 1900 0000 4800 0000 5f5f 5041 4745 5a45  ....H...__PAGEZE
00000030: 524f 0000 0000 0000 0000 0000 0000 0000  RO..............
00000040: 0000 0000 0100 0000 0000 0000 0000 0000  ................
brew@Catalina Cellar % tar cf ~/toto.tar doxygen/1.8.16 
brew@Catalina Cellar % cd
brew@Catalina ~ % tar xf toto.tar doxygen/1.8.16/bin/doxygen
brew@Catalina ~ % file doxygen/1.8.16/bin/doxygen           
doxygen/1.8.16/bin/doxygen: data
brew@Catalina ~ % xxd doxygen/1.8.16/bin/doxygen | head -n 5
00000000: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000  ................

@MikeMcQuaid MikeMcQuaid added the in progress Maintainers are working on this label Oct 7, 2019
@MikeMcQuaid
Copy link
Member

@fxcoudert Has noted this does not seem to happen on the Catalina GM.

@MikeMcQuaid
Copy link
Member

This still seems to be happening on the public release/Xcode 11.1.

@gvarisco
Copy link

gvarisco commented Oct 14, 2019

I've also reported it to Apple via their Feedback Assistant, case ID: FB7378125

@fxcoudert
Copy link
Member Author

  • This still happens on Catalina CI nodes (VMs) after the Supplemental Update
  • This does not happen with Catalina on my own hardware

@NoLooseEnds
Copy link

Happens on my Macbook Pro 2018, with latest update.

(tested with Syncthing, but same issue)

@bunjiboys
Copy link

The issue also occurs with the kustomize formula, and I noticed a difference in the tar archives. It seems the catalina archive, at least for kustomize, was created with the --sparse option.

If I open the archive using mc on the mojave bottle it looks normal, but when I open the catalina archive, browsing to the bin folder, instead of seeing the contents of the folder, I see an extra directory level called GNUSparseFile.0 and then inside there is the kustomize binary. Similarly to the original issue the file has a lot of NUL bytes at the beginning of the file

@Bo98
Copy link
Member

Bo98 commented Nov 26, 2019

For what it's worth, this also happens with brew libarchive as far as I can see.

@chenrui333
Copy link
Member

git-lfs 2.9.2 #45467 has tar issue.

@MikeMcQuaid
Copy link
Member

Closing this as there's no activity and we have an acceptable workaround for now.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
in progress Maintainers are working on this outdated PR was locked due to age
Projects
None yet
Development

No branches or pull requests

8 participants