Skip to content

Commit 021dbf3

Browse files
committed
chore: wip
1 parent bb157ef commit 021dbf3

File tree

1 file changed

+194
-0
lines changed

1 file changed

+194
-0
lines changed

.github/workflows/build-binaries.yml

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,140 @@ jobs:
312312
fi
313313
else
314314
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
315449
fi
316450
fi
317451
@@ -399,6 +533,66 @@ jobs:
399533
fi
400534
fi
401535
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
402596
fi
403597
404598
./configure \

0 commit comments

Comments
 (0)