[vlc-commits] [Git][videolan/vlc][3.0.x] 7 commits: package/macosx: ensure the release build has all the contribs we want

Steve Lhomme (@robUx4) gitlab at videolan.org
Thu Oct 16 07:17:01 UTC 2025



Steve Lhomme pushed to branch 3.0.x at VideoLAN / VLC


Commits:
4cc9b413 by Steve Lhomme at 2025-10-16T06:35:59+00:00
package/macosx: ensure the release build has all the contribs we want

- - - - -
edc7a1b1 by Steve Lhomme at 2025-10-16T06:35:59+00:00
package/macosx: ensure the nightly builds have growl

- - - - -
01d5ad91 by Steve Lhomme at 2025-10-16T06:35:59+00:00
contrib: add a way to check the Apple SDK version

- - - - -
bc31b4d1 by Steve Lhomme at 2025-10-16T06:35:59+00:00
contrib: add a way to check the Apple Target OS version

- - - - -
d29ea814 by Steve Lhomme at 2025-10-16T06:35:59+00:00
contrib: disable targets if they can't be built with xcodebuild

Here is a failure log:
> clang++: error: SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_macosx.a'; try increasing the minimum deployment target
>
> contrib-x86_64-apple-darwin18/sparkle/Sparkle.xcodeproj: warning: The macOS deployment target 'MACOSX_DEPLOYMENT_TARGET' is set to 10.7, but the range of supported deployment target versions is 10.13 to 26.0.99.

xcodebuild seems to only be able to support a certain range of
macOS version.

In XCode 26 the minimum supported version seems
to be 10.13 but we need 10.7. However the sparkle/breakpad
builds work when targeting 10.11. growl doesn't build anyway.

The number 26 may differ if an older version is used because iOS, tvOS, etc
had different values than the OSX version before that.

Older XCode versions may have different issues.

Ref. #29414

clang: error: SDK does not contain 'libarclite' at the path '/Volumes/APFS/opt/Xcode15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_macosx.a'; try increasing the minimum deployment target

clang: error: SDK does not contain 'libarclite' at the path '/Volumes/APFS/opt/Xcode15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_macosx.a'; try increasing the minimum deployment target
ld: file not found: /Volumes/APFS/opt/Xcode14.3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_macosx.a

- - - - -
318bfabe by Steve Lhomme at 2025-10-16T06:35:59+00:00
contrib: allow building xcodebuild targets with newer SDKs if targeting OS 10.11+

- - - - -
fe60420c by Alexandre Janniaux at 2025-10-16T06:35:59+00:00
gitignore: unblacklist build.sh script

(cherry picked from commit 1cff424af81f9ce1fdfb2a12a89c2383dffe4a31)

- - - - -


6 changed files:

- .gitignore
- contrib/src/breakpad/rules.mak
- contrib/src/growl/rules.mak
- contrib/src/main.mak
- contrib/src/sparkle/rules.mak
- extras/package/macosx/build.sh


Changes:

=====================================
.gitignore
=====================================
@@ -49,7 +49,7 @@ patches/*
 include/vlc/libvlc_version.h
 
 # Ignore build dirs
-build*
+build*/
 contrib-*
 install-*
-
+!extras/package/apple/build.sh


=====================================
contrib/src/breakpad/rules.mak
=====================================
@@ -5,6 +5,17 @@ BREAKPAD_VERSION := 0.1.3
 BREAKPAD_URL := http://download.videolan.org/pub/contrib/breakpad/breakpad-$(BREAKPAD_VERSION).tar.gz
 
 ifdef HAVE_MACOSX
+# fails to build on newer SDK because of missing libarclite (found in 13.1, missing in 13.3 from XCode 14.3)
+ifeq ($(call darwin_sdk_at_most, 13.1), true)
+CAN_BUILD_BREAKPAD:=1
+endif
+ifeq ($(call darwin_min_os_at_least, 10.11), true)
+# builds when targeting macOS 10.11
+CAN_BUILD_BREAKPAD:=1
+endif
+endif
+
+ifdef CAN_BUILD_BREAKPAD
 PKGS += breakpad
 endif
 


=====================================
contrib/src/growl/rules.mak
=====================================
@@ -4,8 +4,11 @@ GROWL_VERSION := 2.0.1
 GROWL_URL := https://download.videolan.org/contrib/GrowlSDK-$(GROWL_VERSION)-src.tar.gz
 
 ifdef HAVE_MACOSX
+# fails to build on newer SDK because of missing libarclite (found in 13.1, missing in 13.3 from XCode 14.3)
+ifeq ($(call darwin_sdk_at_most, 13.1), true)
 PKGS += growl
 endif
+endif
 
 $(TARBALLS)/GrowlSDK-$(GROWL_VERSION)-src.tar.gz:
 	$(call download_pkg,$(GROWL_URL),growl)


=====================================
contrib/src/main.mak
=====================================
@@ -117,6 +117,18 @@ CXX := clang++
 endif
 endif
 
+get_version2_num =$(shell echo $(1) | awk -F. '{ printf("%d%02d\n", $$1,$$2); }')
+ifdef HAVE_DARWIN_OS
+# the CI currently has 14.5 (macos-xcode15), 12.3 (monterey), 10.13/10.15 (old-macmini)
+darwin_sdk_at_most  = $(shell [ $(call get_version2_num, $(shell xcrun --sdk $(SDKROOT) -show-sdk-version)) -le $(call get_version2_num, $(1)) ] && echo true)
+
+ifdef VLC_DEPLOYMENT_TARGET
+darwin_min_os_at_least  = $(shell [ $(call get_version2_num, $(VLC_DEPLOYMENT_TARGET)) -ge $(call get_version2_num, $(1)) ] && echo true)
+else
+darwin_min_os_at_least  = $(shell echo false)
+endif
+endif
+
 # -fno-stack-check is a workaround for a possible
 # bug in Xcode 11 or macOS 10.15+
 ifdef HAVE_DARWIN_OS


=====================================
contrib/src/sparkle/rules.mak
=====================================
@@ -4,6 +4,17 @@ SPARKLE_VERSION := 1.16.0
 SPARKLE_URL := $(GITHUB)/sparkle-project/Sparkle/archive/$(SPARKLE_VERSION).zip
 
 ifdef HAVE_MACOSX
+# fails to build on newer SDK because of missing libarclite (found in 13.1, missing in 13.3 from XCode 14.3)
+ifeq ($(call darwin_sdk_at_most, 13.1), true)
+CAN_BUILD_SPARKLE:=1
+endif
+ifeq ($(call darwin_min_os_at_least, 10.11), true)
+# builds when targeting macOS 10.11
+CAN_BUILD_SPARKLE:=1
+endif
+endif
+
+ifdef CAN_BUILD_SPARKLE
 PKGS += sparkle
 endif
 


=====================================
extras/package/macosx/build.sh
=====================================
@@ -247,10 +247,19 @@ export EXTRA_LDFLAGS="-Wl,-syslibroot,$SDKROOT -mmacosx-version-min=$MINIMAL_OSX
 # xcodebuild only allows to set a build-in sdk, not a custom one. Therefore use the default included SDK here
 export XCODE_FLAGS="MACOSX_DEPLOYMENT_TARGET=$MINIMAL_OSX_VERSION -sdk macosx WARNING_CFLAGS=-Werror=partial-availability"
 
+CONTRIBFLAGS=
+if [ "$PACKAGETYPE" = "u" ]; then
+    # release package should have sparkle, breakpad, growl
+    CONTRIBFLAGS="$CONTRIBFLAGS --enable-sparkle --enable-breakpad --enable-growl"
+elif [ "$PACKAGETYPE" = "n" ]; then
+    # nightly package should have growl
+    CONTRIBFLAGS="$CONTRIBFLAGS --enable-growl"
+fi
+
 info "Building contribs"
 spushd "${vlcroot}/contrib"
 mkdir -p contrib-$HOST_TRIPLET && cd contrib-$HOST_TRIPLET
-../bootstrap --build=$BUILD_TRIPLET --host=$HOST_TRIPLET > $out
+../bootstrap --build=$BUILD_TRIPLET --host=$HOST_TRIPLET $CONTRIBFLAGS > $out
 if [ "$REBUILD" = "yes" ]; then
     make clean
 fi
@@ -314,6 +323,13 @@ CONFIGFLAGS=""
 if [ ! -z "$BREAKPAD" ]; then
      CONFIGFLAGS="$CONFIGFLAGS --with-breakpad=$BREAKPAD"
 fi
+if [ "$PACKAGETYPE" = "u" ]; then
+    # release package should have sparkle, breakpad, growl
+    CONFIGFLAGS="$CONFIGFLAGS --enable-sparkle --enable-breakpad --enable-growl"
+elif [ "$PACKAGETYPE" = "n" ]; then
+    # nightly package should have growl
+    CONFIGFLAGS="$CONFIGFLAGS --enable-growl"
+fi
 
 if [ "${vlcroot}/configure" -nt Makefile ]; then
 



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/f7a7cab664af20d2dfdd67a5d20d5819b91ed8f0...fe60420c4060e22c1660668f124b14da875f36be

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/f7a7cab664af20d2dfdd67a5d20d5819b91ed8f0...fe60420c4060e22c1660668f124b14da875f36be
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list