@@ -306,19 +306,44 @@ jobs:
306
306
if [[ -n "$BZIP2_VERSION" ]]; then
307
307
BZIP2_PATH="$LAUNCHPAD_BZIP2_DIR/$BZIP2_VERSION"
308
308
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"
316
332
fi
317
333
else
318
334
echo "No bzip2 version found in $LAUNCHPAD_BZIP2_DIR"
335
+ echo "Disabling bzip2 support"
336
+ EXTRA_CONFIG="$EXTRA_CONFIG --disable-bz2"
319
337
fi
320
338
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
322
347
fi
323
348
324
349
# Check libzip compatibility and handle zip extension
@@ -455,26 +480,57 @@ jobs:
455
480
fi
456
481
fi
457
482
458
- # Clean up EXTRA_CONFIG to remove any duplicate options
483
+ # Clean up EXTRA_CONFIG to remove any duplicate options and validate
459
484
echo "Cleaning up EXTRA_CONFIG to remove duplicates..."
460
- # Remove duplicate --with-* options
485
+ # Remove duplicate --with-* options and validate
461
486
CLEANED_EXTRA_CONFIG=""
462
487
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
+
463
494
if [[ "$option" =~ ^--with- ]]; then
464
495
# Extract the option name (e.g., --with-bz2, --with-iconv)
465
496
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
469
507
else
470
- echo "Removing duplicate option: $option"
508
+ echo "Removing duplicate or invalid option: $option"
471
509
fi
472
510
else
473
511
CLEANED_EXTRA_CONFIG="$CLEANED_EXTRA_CONFIG $option"
474
512
fi
475
513
done
476
514
EXTRA_CONFIG="$CLEANED_EXTRA_CONFIG"
477
515
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"
478
534
fi
479
535
480
536
echo "Configuring PHP with:"
0 commit comments