@@ -312,6 +312,140 @@ jobs:
312
312
fi
313
313
else
314
314
echo "Launchpad bzip2 not found, using system bzip2"
315
+ fi
316
+
317
+ # Check libzip compatibility and handle zip extension
318
+ LAUNCHPAD_LIBZIP_DIR="$HOME/.local/share/launchpad/global/libzip.org"
319
+ if [[ -d "$LAUNCHPAD_LIBZIP_DIR" ]]; then
320
+ # Find the latest version
321
+ LIBZIP_VERSION=$(ls "$LAUNCHPAD_LIBZIP_DIR" | grep "^v" | sort -V | tail -1)
322
+ if [[ -n "$LIBZIP_VERSION" ]]; then
323
+ LIBZIP_PATH="$LAUNCHPAD_LIBZIP_DIR/$LIBZIP_VERSION"
324
+ echo "Found launchpad libzip at: $LIBZIP_PATH"
325
+
326
+ # Check if this libzip version is compatible with PHP 8.4
327
+ # PHP 8.4 requires libzip >= 1.8.0 for full compatibility
328
+ if [[ "$LIBZIP_VERSION" =~ v1\.([0-9]+)\.([0-9]+) ]]; then
329
+ MAJOR_VERSION="${BASH_REMATCH[1]}"
330
+ MINOR_VERSION="${BASH_REMATCH[2]}"
331
+ if [[ "$MAJOR_VERSION" -ge 1 && "$MINOR_VERSION" -ge 8 ]]; then
332
+ echo "✓ libzip version $LIBZIP_VERSION is compatible with PHP 8.4"
333
+ EXTRA_CONFIG="$EXTRA_CONFIG --with-libzip=$LIBZIP_PATH"
334
+ else
335
+ echo "⚠️ libzip version $LIBZIP_VERSION may not be fully compatible with PHP 8.4"
336
+ echo " Disabling zip extension to avoid build issues"
337
+ EXTRA_CONFIG="$EXTRA_CONFIG --disable-zip"
338
+ fi
339
+ elif [[ "$LIBZIP_VERSION" =~ v1\.([0-9]+) ]]; then
340
+ # Handle version format like v1.9.2
341
+ MAJOR_VERSION="${BASH_REMATCH[1]}"
342
+ if [[ "$MAJOR_VERSION" -ge 1 ]]; then
343
+ echo "✓ libzip version $LIBZIP_VERSION is compatible with PHP 8.4"
344
+ EXTRA_CONFIG="$EXTRA_CONFIG --with-libzip=$LIBZIP_PATH"
345
+ else
346
+ echo "⚠️ libzip version $LIBZIP_VERSION may not be fully compatible with PHP 8.4"
347
+ echo " Disabling zip extension to avoid build issues"
348
+ EXTRA_CONFIG="$EXTRA_CONFIG --disable-zip"
349
+ fi
350
+ else
351
+ echo "⚠️ Could not determine libzip version, disabling zip extension"
352
+ EXTRA_CONFIG="$EXTRA_CONFIG --disable-zip"
353
+ fi
354
+ else
355
+ echo "No libzip version found in $LAUNCHPAD_LIBZIP_DIR"
356
+ echo "Disabling zip extension"
357
+ EXTRA_CONFIG="$EXTRA_CONFIG --disable-zip"
358
+ fi
359
+ else
360
+ echo "Launchpad libzip not found, checking system libzip"
361
+ # Check system libzip version
362
+ if pkg-config --exists libzip; then
363
+ LIBZIP_VERSION=$(pkg-config --modversion libzip)
364
+ echo "System libzip version: $LIBZIP_VERSION"
365
+ # If system libzip is too old, disable zip extension
366
+ if [[ "$LIBZIP_VERSION" =~ ^([0-9]+)\.([0-9]+) ]]; then
367
+ MAJOR_VERSION="${BASH_REMATCH[1]}"
368
+ MINOR_VERSION="${BASH_REMATCH[2]}"
369
+ if [[ "$MAJOR_VERSION" -ge 1 && "$MINOR_VERSION" -ge 8 ]]; then
370
+ echo "✓ System libzip version $LIBZIP_VERSION is compatible"
371
+ else
372
+ echo "⚠️ System libzip version $LIBZIP_VERSION is too old, disabling zip extension"
373
+ EXTRA_CONFIG="$EXTRA_CONFIG --disable-zip"
374
+ fi
375
+ else
376
+ echo "⚠️ Could not determine system libzip version, disabling zip extension"
377
+ EXTRA_CONFIG="$EXTRA_CONFIG --disable-zip"
378
+ fi
379
+ else
380
+ echo "No system libzip found, disabling zip extension"
381
+ EXTRA_CONFIG="$EXTRA_CONFIG --disable-zip"
382
+ fi
383
+ fi
384
+
385
+ # Find launchpad-installed GMP for bcmath extension
386
+ LAUNCHPAD_GMP_DIR="$HOME/.local/share/launchpad/global/gnu.org/gmp"
387
+ if [[ -d "$LAUNCHPAD_GMP_DIR" ]]; then
388
+ GMP_VERSION=$(ls "$LAUNCHPAD_GMP_DIR" | grep "^v" | sort -V | tail -1)
389
+ if [[ -n "$GMP_VERSION" ]]; then
390
+ GMP_PATH="$LAUNCHPAD_GMP_DIR/$GMP_VERSION"
391
+ echo "Found launchpad GMP at: $GMP_PATH"
392
+ EXTRA_CONFIG="$EXTRA_CONFIG --with-gmp=$GMP_PATH"
393
+ fi
394
+ fi
395
+
396
+ # Find launchpad-installed libsodium for sodium extension
397
+ LAUNCHPAD_SODIUM_DIR="$HOME/.local/share/launchpad/global/libsodium.org"
398
+ if [[ -d "$LAUNCHPAD_SODIUM_DIR" ]]; then
399
+ SODIUM_VERSION=$(ls "$LAUNCHPAD_SODIUM_DIR" | grep "^v" | sort -V | tail -1)
400
+ if [[ -n "$SODIUM_VERSION" ]]; then
401
+ SODIUM_PATH="$LAUNCHPAD_SODIUM_DIR/$SODIUM_VERSION"
402
+ echo "Found launchpad libsodium at: $SODIUM_PATH"
403
+ EXTRA_CONFIG="$EXTRA_CONFIG --with-sodium=$SODIUM_PATH"
404
+ fi
405
+ fi
406
+
407
+ # Find launchpad-installed oniguruma for mbstring extension
408
+ LAUNCHPAD_ONIGURUMA_DIR="$HOME/.local/share/launchpad/global/github.com/kkos/oniguruma"
409
+ if [[ -d "$LAUNCHPAD_ONIGURUMA_DIR" ]]; then
410
+ ONIGURUMA_VERSION=$(ls "$LAUNCHPAD_ONIGURUMA_DIR" | grep "^v" | sort -V | tail -1)
411
+ if [[ -n "$ONIGURUMA_VERSION" ]]; then
412
+ ONIGURUMA_PATH="$LAUNCHPAD_ONIGURUMA_DIR/$ONIGURUMA_VERSION"
413
+ echo "Found launchpad oniguruma at: $ONIGURUMA_PATH"
414
+ EXTRA_CONFIG="$EXTRA_CONFIG --with-onig=$ONIGURUMA_PATH"
415
+ fi
416
+ fi
417
+
418
+ # Find launchpad-installed libxml2 for XML extension
419
+ LAUNCHPAD_LIBXML2_DIR="$HOME/.local/share/launchpad/global/gnome.org/libxml2"
420
+ if [[ -d "$LAUNCHPAD_LIBXML2_DIR" ]]; then
421
+ LIBXML2_VERSION=$(ls "$LAUNCHPAD_LIBXML2_DIR" | grep "^v" | sort -V | tail -1)
422
+ if [[ -n "$LIBXML2_VERSION" ]]; then
423
+ LIBXML2_PATH="$LAUNCHPAD_LIBXML2_DIR/$LIBXML2_VERSION"
424
+ echo "Found launchpad libxml2 at: $LIBXML2_PATH"
425
+ EXTRA_CONFIG="$EXTRA_CONFIG --with-libxml-dir=$LIBXML2_PATH"
426
+ fi
427
+ fi
428
+
429
+ # Find launchpad-installed libxslt for XSLT extension
430
+ LAUNCHPAD_LIBXSLT_DIR="$HOME/.local/share/launchpad/global/gnome.org/libxslt"
431
+ if [[ -d "$LAUNCHPAD_LIBXSLT_DIR" ]]; then
432
+ LIBXSLT_VERSION=$(ls "$LAUNCHPAD_LIBXSLT_DIR" | grep "^v" | sort -V | tail -1)
433
+ if [[ -n "$LIBXSLT_VERSION" ]]; then
434
+ LIBXSLT_PATH="$LAUNCHPAD_LIBXSLT_DIR/$LIBXSLT_VERSION"
435
+ echo "Found launchpad libxslt at: $LIBXSLT_PATH"
436
+ EXTRA_CONFIG="$EXTRA_CONFIG --with-xsl=$LIBXSLT_PATH"
437
+ fi
438
+ fi
439
+
440
+ # Find launchpad-installed openldap for LDAP extension
441
+ LAUNCHPAD_OPENLDAP_DIR="$HOME/.local/share/launchpad/global/openldap.org"
442
+ if [[ -d "$LAUNCHPAD_OPENLDAP_DIR" ]]; then
443
+ OPENLDAP_VERSION=$(ls "$LAUNCHPAD_OPENLDAP_DIR" | grep "^v" | sort -V | tail -1)
444
+ if [[ -n "$OPENLDAP_VERSION" ]]; then
445
+ OPENLDAP_PATH="$LAUNCHPAD_OPENLDAP_DIR/$OPENLDAP_VERSION"
446
+ echo "Found launchpad openldap at: $OPENLDAP_PATH"
447
+ EXTRA_CONFIG="$EXTRA_CONFIG --with-ldap=$OPENLDAP_PATH"
448
+ fi
315
449
fi
316
450
fi
317
451
@@ -399,6 +533,66 @@ jobs:
399
533
fi
400
534
fi
401
535
fi
536
+
537
+ # Check if libzip headers are available
538
+ if [[ -f "/usr/include/zip.h" ]] || [[ -f "/usr/local/include/zip.h" ]]; then
539
+ echo "✓ zip.h found in system include paths"
540
+ else
541
+ echo "⚠️ zip.h not found in system include paths"
542
+ # Check if we can find it in launchpad paths
543
+ LAUNCHPAD_LIBZIP_DIR="$HOME/.local/share/launchpad/global/libzip.org"
544
+ if [[ -d "$LAUNCHPAD_LIBZIP_DIR" ]]; then
545
+ LIBZIP_VERSION=$(ls "$LAUNCHPAD_LIBZIP_DIR" | grep "^v" | sort -V | tail -1)
546
+ if [[ -n "$LIBZIP_VERSION" ]]; then
547
+ LIBZIP_INCLUDE="$LAUNCHPAD_LIBZIP_DIR/$LIBZIP_VERSION/include"
548
+ if [[ -f "$LIBZIP_INCLUDE/zip.h" ]]; then
549
+ echo "✓ zip.h found in launchpad: $LIBZIP_INCLUDE/zip.h"
550
+ else
551
+ echo "⚠️ zip.h not found in launchpad include path"
552
+ fi
553
+ fi
554
+ fi
555
+ fi
556
+
557
+ # Check if GMP headers are available
558
+ if [[ -f "/usr/include/gmp.h" ]] || [[ -f "/usr/local/include/gmp.h" ]]; then
559
+ echo "✓ gmp.h found in system include paths"
560
+ else
561
+ echo "⚠️ gmp.h not found in system include paths"
562
+ # Check if we can find it in launchpad paths
563
+ LAUNCHPAD_GMP_DIR="$HOME/.local/share/launchpad/global/gnu.org/gmp"
564
+ if [[ -d "$LAUNCHPAD_GMP_DIR" ]]; then
565
+ GMP_VERSION=$(ls "$LAUNCHPAD_GMP_DIR" | grep "^v" | sort -V | tail -1)
566
+ if [[ -n "$GMP_VERSION" ]]; then
567
+ GMP_INCLUDE="$LAUNCHPAD_GMP_DIR/$GMP_VERSION/include"
568
+ if [[ -f "$GMP_INCLUDE/gmp.h" ]]; then
569
+ echo "✓ gmp.h found in launchpad: $GMP_INCLUDE/gmp.h"
570
+ else
571
+ echo "⚠️ gmp.h not found in launchpad include path"
572
+ fi
573
+ fi
574
+ fi
575
+ fi
576
+
577
+ # Check if libxml2 headers are available
578
+ if [[ -f "/usr/include/libxml2/libxml/xmlversion.h" ]] || [[ -f "/usr/local/include/libxml2/libxml/xmlversion.h" ]]; then
579
+ echo "✓ libxml2 headers found in system include paths"
580
+ else
581
+ echo "⚠️ libxml2 headers not found in system include paths"
582
+ # Check if we can find it in launchpad paths
583
+ LAUNCHPAD_LIBXML2_DIR="$HOME/.local/share/launchpad/global/gnome.org/libxml2"
584
+ if [[ -d "$LAUNCHPAD_LIBXML2_DIR" ]]; then
585
+ LIBXML2_VERSION=$(ls "$LAUNCHPAD_LIBXML2_DIR" | grep "^v" | sort -V | tail -1)
586
+ if [[ -n "$LIBXML2_VERSION" ]]; then
587
+ LIBXML2_INCLUDE="$LAUNCHPAD_LIBXML2_DIR/$LIBXML2_VERSION/include"
588
+ if [[ -f "$LIBXML2_INCLUDE/libxml2/libxml/xmlversion.h" ]]; then
589
+ echo "✓ libxml2 headers found in launchpad: $LIBXML2_INCLUDE/libxml2/libxml/xmlversion.h"
590
+ else
591
+ echo "⚠️ libxml2 headers not found in launchpad include path"
592
+ fi
593
+ fi
594
+ fi
595
+ fi
402
596
fi
403
597
404
598
./configure \
0 commit comments