Skip to content

Commit 07497d2

Browse files
committed
chore: wip
1 parent 144f115 commit 07497d2

File tree

1 file changed

+70
-14
lines changed

1 file changed

+70
-14
lines changed

.github/workflows/build-binaries.yml

Lines changed: 70 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -306,19 +306,44 @@ jobs:
306306
if [[ -n "$BZIP2_VERSION" ]]; then
307307
BZIP2_PATH="$LAUNCHPAD_BZIP2_DIR/$BZIP2_VERSION"
308308
echo "Found launchpad bzip2 at: $BZIP2_PATH"
309-
# Check if bzlib.h exists in the include directory
310-
if [[ -f "$BZIP2_PATH/include/bzlib.h" ]]; then
311-
echo "✓ bzlib.h found at $BZIP2_PATH/include/bzlib.h"
312-
EXTRA_CONFIG="$EXTRA_CONFIG --with-bz2=$BZIP2_PATH"
313-
else
314-
echo "⚠️ bzlib.h not found at $BZIP2_PATH/include/bzlib.h"
315-
echo " Using system bzip2 instead"
309+
310+
# Check multiple possible locations for bzlib.h
311+
BZLIB_FOUND=false
312+
for include_path in "$BZIP2_PATH/include/bzlib.h" "$BZIP2_PATH/include/bzip2/bzlib.h" "$BZIP2_PATH/bzlib.h"; do
313+
if [[ -f "$include_path" ]]; then
314+
echo "✓ bzlib.h found at $include_path"
315+
EXTRA_CONFIG="$EXTRA_CONFIG --with-bz2=$BZIP2_PATH"
316+
BZLIB_FOUND=true
317+
break
318+
fi
319+
done
320+
321+
if [[ "$BZLIB_FOUND" == "false" ]]; then
322+
echo "⚠️ bzlib.h not found in expected locations:"
323+
echo " - $BZIP2_PATH/include/bzlib.h"
324+
echo " - $BZIP2_PATH/include/bzip2/bzlib.h"
325+
echo " - $BZIP2_PATH/bzlib.h"
326+
echo " Checking what files exist in include directory:"
327+
if [[ -d "$BZIP2_PATH/include" ]]; then
328+
ls -la "$BZIP2_PATH/include/" || echo "Could not list include directory"
329+
fi
330+
echo " Disabling bzip2 support"
331+
EXTRA_CONFIG="$EXTRA_CONFIG --disable-bz2"
316332
fi
317333
else
318334
echo "No bzip2 version found in $LAUNCHPAD_BZIP2_DIR"
335+
echo "Disabling bzip2 support"
336+
EXTRA_CONFIG="$EXTRA_CONFIG --disable-bz2"
319337
fi
320338
else
321-
echo "Launchpad bzip2 not found, using system bzip2"
339+
echo "Launchpad bzip2 not found, checking system bzip2"
340+
# Check if system bzip2 is available
341+
if [[ -f "/usr/include/bzlib.h" ]] || [[ -f "/usr/local/include/bzlib.h" ]]; then
342+
echo "✓ System bzip2 headers found"
343+
else
344+
echo "⚠️ No bzip2 headers found, disabling bzip2 support"
345+
EXTRA_CONFIG="$EXTRA_CONFIG --disable-bz2"
346+
fi
322347
fi
323348
324349
# Check libzip compatibility and handle zip extension
@@ -455,26 +480,57 @@ jobs:
455480
fi
456481
fi
457482
458-
# Clean up EXTRA_CONFIG to remove any duplicate options
483+
# Clean up EXTRA_CONFIG to remove any duplicate options and validate
459484
echo "Cleaning up EXTRA_CONFIG to remove duplicates..."
460-
# Remove duplicate --with-* options
485+
# Remove duplicate --with-* options and validate
461486
CLEANED_EXTRA_CONFIG=""
462487
for option in $EXTRA_CONFIG; do
488+
# Skip empty options
489+
if [[ -z "$option" ]]; then
490+
echo "Skipping empty option"
491+
continue
492+
fi
493+
463494
if [[ "$option" =~ ^--with- ]]; then
464495
# Extract the option name (e.g., --with-bz2, --with-iconv)
465496
option_name=$(echo "$option" | cut -d'=' -f1)
466-
# Only add if not already present
467-
if [[ "$CLEANED_EXTRA_CONFIG" != *"$option_name"* ]]; then
468-
CLEANED_EXTRA_CONFIG="$CLEANED_EXTRA_CONFIG $option"
497+
# Only add if not already present and has a value
498+
if [[ "$CLEANED_EXTRA_CONFIG" != *"$option_name"* ]] && [[ "$option" =~ = ]]; then
499+
# Validate that the path exists
500+
option_path=$(echo "$option" | cut -d'=' -f2-)
501+
if [[ -d "$option_path" ]]; then
502+
CLEANED_EXTRA_CONFIG="$CLEANED_EXTRA_CONFIG $option"
503+
echo "Added valid option: $option"
504+
else
505+
echo "Skipping invalid path: $option (path does not exist: $option_path)"
506+
fi
469507
else
470-
echo "Removing duplicate option: $option"
508+
echo "Removing duplicate or invalid option: $option"
471509
fi
472510
else
473511
CLEANED_EXTRA_CONFIG="$CLEANED_EXTRA_CONFIG $option"
474512
fi
475513
done
476514
EXTRA_CONFIG="$CLEANED_EXTRA_CONFIG"
477515
echo "Cleaned EXTRA_CONFIG: $EXTRA_CONFIG"
516+
517+
# Final validation: ensure no empty or problematic options
518+
FINAL_EXTRA_CONFIG=""
519+
for option in $EXTRA_CONFIG; do
520+
# Skip empty or whitespace-only options
521+
if [[ -z "${option// }" ]]; then
522+
echo "Removing empty option"
523+
continue
524+
fi
525+
# Skip options that might cause issues
526+
if [[ "$option" =~ ^--with-[^=]+$ ]]; then
527+
echo "Removing option without value: $option"
528+
continue
529+
fi
530+
FINAL_EXTRA_CONFIG="$FINAL_EXTRA_CONFIG $option"
531+
done
532+
EXTRA_CONFIG="$FINAL_EXTRA_CONFIG"
533+
echo "Final EXTRA_CONFIG: $EXTRA_CONFIG"
478534
fi
479535
480536
echo "Configuring PHP with:"

0 commit comments

Comments
 (0)