fix(release): macOS archive missing libcvc dylib and cmake configs#90
Merged
Conversation
dylibbundler's -od flag erases the output directory before copying transitive dependency dylibs into it. Since we use -d $DIST/lib (the same directory where cmake --install places libcvc.3.0.dylib and the cmake/ config tree), the -od flag nukes the primary library and all cmake package configs before re-populating with only the deps. Fix: remove -od so dylibbundler writes deps alongside the already- installed libcvc files without erasing the directory first. The -of flag (overwrite files) already handles the case where a dep file already exists. Also add zstd to brew install / apt-get install lines in the release workflow (matching the ci.yml fix from PR #89) so the zstd compression codec links correctly on macOS release builds.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The macOS release archives from v3.2.3 are missing
libcvc.dylib(all variants:.3.0.dylib,.3.dylib,.dylib) and the CMake package config files (cvcTargets.cmake,cvcConfig.cmake, etc). This causes downstream consumers (TexMol, MolSurf, F2Dock) to fail at configure time withfind_package(cvc)unable to locate the library.Root Cause
The
dylibbundler -odflag in the release workflow's "Stage libcvc + bundle deps" step erases and recreates the output directory before copying transitive dependency dylibs. Since the output directory (-d $DIST/lib) is the same directory wherecmake --installalready placed:libcvc.3.0.dylib,libcvc.3.dylib,libcvc.dylibcmake/cvc/cvcTargets.cmake,cvcTargets-release.cmakecmake/cvc/cvcConfig.cmake,cvcConfigVersion.cmake…the
-odflag nukes all these files, then only repopulates with the bundled dependency dylibs (boost, hdf5, fftw, etc).Evidence from the v3.2.3 release CI logs:
Fix
-odflag fromdylibbundlerinvocation. The-of(overwrite files) flag already handles the case where a dependency file pre-exists in the output dir.zstdtobrew installandapt-get installlines (matching the CI fix from PR feat: distributed state gap closure — 14 items #89).Testing
After merge, tag v3.2.4 to produce corrected release archives. The macOS archives should then contain:
lib/libcvc.3.0.dylib(the actual library)lib/libcvc.3.dylib→ symlinklib/libcvc.dylib→ symlinklib/cmake/cvc/cvcConfig.cmakelib/cmake/cvc/cvcTargets.cmake