@@ -261,8 +261,27 @@ run_pre_configuration()
261261 return 1
262262 fi
263263
264- if ! /bin/sh -c " ${SWITCH_PHP_COMMAND} phpize" ; then
265- PRNERR " Failed to run \" phpize\" before configration."
264+ # [NOTE]
265+ # Some OS only have the phpizeXX command instead of phpize, so we'll check here.
266+ # ex) Alpine 3.22/3.21 only has phpize84.
267+ #
268+ PIPIZECMD=" phpize"
269+ if ! /bin/sh -c " ${SWITCH_PHP_COMMAND} command -v ${PIPIZECMD} >/dev/null 2>&1" ; then
270+ PIPIZECMD=" phpize84"
271+ if ! /bin/sh -c " ${SWITCH_PHP_COMMAND} command -v ${PIPIZECMD} >/dev/null 2>&1" ; then
272+ PIPIZECMD=" phpize83"
273+ if ! /bin/sh -c " ${SWITCH_PHP_COMMAND} command -v ${PIPIZECMD} >/dev/null 2>&1" ; then
274+ PIPIZECMD=" phpize82"
275+ if ! /bin/sh -c " ${SWITCH_PHP_COMMAND} command -v ${PIPIZECMD} >/dev/null 2>&1" ; then
276+ PRNERR " Not found \" phpize\" or \" phpizeXX\" command."
277+ return 1
278+ fi
279+ fi
280+ fi
281+ fi
282+
283+ if ! /bin/sh -c " ${SWITCH_PHP_COMMAND} ${PIPIZECMD} " ; then
284+ PRNERR " Failed to run \" ${PIPIZECMD} \" before configration."
266285 return 1
267286 fi
268287 return 0
@@ -273,7 +292,31 @@ run_pre_configuration()
273292#
274293run_configuration ()
275294{
276- if ! /bin/sh -c " ${SWITCH_PHP_COMMAND} ./configure" ; then
295+ # [NOTE]
296+ # Some OS only have the phpizeXX command instead of phpize, so we'll check here.
297+ # ex) Alpine 3.22/3.21 only has php-config84.
298+ #
299+ if PHPCONFIGCMD=$( /bin/sh -c " ${SWITCH_PHP_COMMAND} command -v php-config" ) ; then
300+ # default
301+ CONFIGURE_PHP_EXT_OPT=" "
302+ else
303+ if PHPCONFIGCMD=$( /bin/sh -c " ${SWITCH_PHP_COMMAND} command -v php-config84" ) ; then
304+ CONFIGURE_PHP_EXT_OPT=" --with-php-config=${PHPCONFIGCMD} "
305+ else
306+ if PHPCONFIGCMD=$( /bin/sh -c " ${SWITCH_PHP_COMMAND} command -v php-config83" ) ; then
307+ CONFIGURE_PHP_EXT_OPT=" --with-php-config=${PHPCONFIGCMD} "
308+ else
309+ if PHPCONFIGCMD=$( /bin/sh -c " ${SWITCH_PHP_COMMAND} command -v php-config82" ) ; then
310+ CONFIGURE_PHP_EXT_OPT=" --with-php-config=${PHPCONFIGCMD} "
311+ else
312+ PRNWARN " Not found \" php-config\" or \" php-configXX\" command, so do not specify \" --with-php-config\" option."
313+ CONFIGURE_PHP_EXT_OPT=" "
314+ fi
315+ fi
316+ fi
317+ fi
318+
319+ if ! /bin/sh -c " ${SWITCH_PHP_COMMAND} ./configure ${CONFIGURE_PHP_EXT_OPT} " ; then
277320 PRNERR " Failed to run \" configure\" ."
278321 return 1
279322 fi
@@ -557,47 +600,9 @@ run_publish_package()
557600 PRNERR " Token for uploading to packagecloud.io is not specified."
558601 return 1
559602 fi
560-
561- # [NOTE]
562- # The Ruby environment of some OS uses RVM (Ruby Version Manager) and requires a Bash shell environment.
563- #
564- if [ " ${IS_OS_DEBIAN} " -eq 1 ] && echo " ${CI_OSTYPE} " | sed -e ' s#:##g' | grep -q -i -e ' debian10' -e ' debianbuster' ; then
565- #
566- # Case for Debian 10(buster)
567- #
568- {
569- #
570- # Create bash script for run package_cloud command, because using RVM(Ruby Version Manager).
571- #
572- echo ' #!/bin/bash'
573- echo ' '
574- echo ' source /etc/profile.d/rvm.sh'
575- echo ' '
576- echo ' if ! ' " PACKAGECLOUD_TOKEN=${CI_PACKAGECLOUD_TOKEN} package_cloud push ${CI_PACKAGECLOUD_OWNER} /${CI_PACKAGECLOUD_PUBLISH_REPO} /${DIST_TAG} ${SRCTOP} /${PKG_OUTPUT_DIR} /*.${PKG_EXT} ; then"
577- echo ' exit 1'
578- echo ' fi'
579- echo ' '
580- echo ' exit 0'
581- } > /tmp/run_package_cloud.sh
582- chmod +x /tmp/run_package_cloud.sh
583-
584- #
585- # Run bash script
586- #
587- if ({ RUNCMD /tmp/run_package_cloud.sh || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /g' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
588- PRNERR " Failed to publish *.${PKG_EXT} packages to ${CI_PACKAGECLOUD_OWNER} /${CI_PACKAGECLOUD_PUBLISH_REPO} /${DIST_TAG} "
589- rm -f /tmp/run_package_cloud.sh
590- return 1
591- fi
592- rm -f /tmp/run_package_cloud.sh
593- else
594- #
595- # Case for other than Debian 10(buster)
596- #
597- if ! PACKAGECLOUD_TOKEN=" ${CI_PACKAGECLOUD_TOKEN} " /bin/sh -c " package_cloud push ${CI_PACKAGECLOUD_OWNER} /${CI_PACKAGECLOUD_PUBLISH_REPO} /${DIST_TAG} ${SRCTOP} /${PKG_OUTPUT_DIR} /*.${PKG_EXT} " ; then
598- PRNERR " Failed to publish *.${PKG_EXT} packages to ${CI_PACKAGECLOUD_OWNER} /${CI_PACKAGECLOUD_PUBLISH_REPO} /${DIST_TAG} "
599- return 1
600- fi
603+ if ! PACKAGECLOUD_TOKEN=" ${CI_PACKAGECLOUD_TOKEN} " /bin/sh -c " package_cloud push ${CI_PACKAGECLOUD_OWNER} /${CI_PACKAGECLOUD_PUBLISH_REPO} /${DIST_TAG} ${SRCTOP} /${PKG_OUTPUT_DIR} /*.${PKG_EXT} " ; then
604+ PRNERR " Failed to publish *.${PKG_EXT} packages to ${CI_PACKAGECLOUD_OWNER} /${CI_PACKAGECLOUD_PUBLISH_REPO} /${DIST_TAG} "
605+ return 1
601606 fi
602607 else
603608 PRNINFO " Not need to publish packages"
862867 fi
863868 if [ -z " ${CI_DEVELOPER_EMAIL} " ]; then
864869 PRNWARN " DEVELOPER_EMAIL is not set in the options or environment variables. There is no choice but to set the default value."
865- CI_DEVELOPER_EMAIL=" antpickax-support@mail.yahoo .co.jp"
870+ CI_DEVELOPER_EMAIL=" ml- antpickax-support@lycorp .co.jp"
866871 fi
867872fi
868873
@@ -1485,99 +1490,58 @@ if [ "${CI_DO_PUBLISH}" -eq 1 ]; then
14851490 exit 1
14861491 fi
14871492
1488- elif [ " ${IS_OS_DEBIAN} " -eq 1 ] && echo " ${CI_OSTYPE} " | sed -e ' s#:##g ' | grep -q -i -e ' debian10 ' -e ' debianbuster ' ; then
1493+ else
14891494 #
1490- # Case for Debian 10/buster (default ruby 2.5)
1495+ # Case for other than Alpine / Rocky Linux 8
14911496 #
1497+ if ({ RUNCMD " ${GEM_BIN} " " ${GEM_INSTALL_CMD} " rake package_cloud || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /g' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
1498+ PRNERR " Failed to install packagecloud.io upload tools"
1499+ exit 1
1500+ fi
1501+ fi
14921502
1493- #
1494- # Set RVM(Ruby Version Manager) and install Ruby 2.7 and package_cloud
1495- #
1496- # [NOTE]
1497- # Install Ruby2.7 using RVM tools.
1498- # Installation and running RVM tools must be done in Bash.
1499- # This set of installations will create a Bash script and run it.
1500- #
1501- # The script does the following:
1502- # First, we need to install the GPG key before installing RVM.
1503- # This is done with one of the following commands:
1504- #
1505- # sudo gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
1506- # or
1507- # command curl -sSL https://rvm.io/mpapis.asc | sudo gpg --import -
1508- # command curl -sSL https://rvm.io/pkuczynski.asc | sudo gpg --import -
1509- #
1510- # After that, install RVM installation, RVM environment settings, Ruby2.7 installation, and package_cloud tools.
1511- #
1512- # [NOTE]
1513- # The RVM installation requires running from a bash shell.
1514- # So create a Bash script and run it.
1515- {
1516- echo ' #!/bin/bash'
1517- echo ' '
1518- echo ' if ! curl -sSL https://rvm.io/mpapis.asc | gpg --import - 2>&1; then'
1519- echo ' echo "Failed to run [ curl -sSL https://rvm.io/mpapis.asc | gpg --import - ] command."'
1520- echo ' exit 1'
1521- echo ' fi'
1522- echo ' if ! curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - 2>&1; then'
1523- echo ' echo "Failed to run [ curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - ] command."'
1524- echo ' exit 1'
1525- echo ' fi'
1526- echo ' '
1527- echo ' if ! curl -sSL https://get.rvm.io | bash -s stable --ruby 2>&1; then'
1528- echo ' echo "Failed to install RVM tool."'
1529- echo ' exit 1'
1530- echo ' fi'
1531- echo ' '
1532- echo ' if [ ! -f /etc/profile.d/rvm.sh ]; then'
1533- echo ' echo "Not found /etc/profile.d/rvm.sh file."'
1534- echo ' exit 1'
1535- echo ' fi'
1536- echo ' source /etc/profile.d/rvm.sh'
1537- echo ' '
1538- echo ' if ! rvm get stable --autolibs=enable 2>&1; then'
1539- echo ' echo "Failed to get/update RVM stable."'
1540- echo ' exit 1'
1541- echo ' fi'
1542- echo ' if ! usermod -a -G rvm root 2>&1; then'
1543- echo ' echo "Failed to add rvm user to root group."'
1544- echo ' exit 1'
1545- echo ' fi'
1546- echo ' if ! rvm install ruby-2.7 2>&1; then'
1547- echo ' echo "Failed to install ruby 2.7."'
1548- echo ' exit 1'
1549- echo ' fi'
1550- echo ' if ! rvm --default use ruby-2.7 2>&1; then'
1551- echo ' echo "Failed to set ruby 2.7 as default."'
1552- echo ' exit 1'
1553- echo ' fi'
1554- echo ' '
1555- echo ' if ! ' " ${GEM_BIN} ${GEM_INSTALL_CMD} package_cloud 2>&1; then"
1556- echo ' echo "Failed to install packagecloud.io upload tools"'
1557- echo ' exit 1'
1558- echo ' fi'
1559- echo ' '
1560- echo ' exit 0'
1561- } > /tmp/rvm_setup.sh
1562- chmod +x /tmp/rvm_setup.sh
1503+ # [NOTE]
1504+ # Currently, the package_cloud tool must restrict gem packages depending on
1505+ # the Ruby version.
1506+ #
1507+ RB_MAJOR_VER=$( ruby -v | awk ' {print $2}' | awk -F' [^0-9]' ' {print $1}' )
1508+ RB_MINOR_VER=$( ruby -v | awk ' {print $2}' | awk -F' [^0-9]' ' {print $2}' )
1509+ RB_PATCH_VER=$( ruby -v | awk ' {print $2}' | awk -F' [^0-9]' ' {print $3}' )
1510+ RB_ALL_VER=$(( RB_MAJOR_VER* 10000 + RB_MINOR_VER* 100 + RB_PATCH_VER))
15631511
1512+ if [ " ${RB_ALL_VER} " -ge 30400 ]; then
1513+ # [NOTE]
1514+ # For Ruby 3.4.0 and later, you must manually install the addrev gem package.
15641515 #
1565- # Run bash script
1566- #
1567- if ({ RUNCMD /tmp/rvm_setup.sh || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /g' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
1568- PRNERR " Failed to set up RVM."
1569- rm -f /tmp/rvm_setup.sh
1516+ PRNINFO " Start to install addrev gem because ruby version is 3.4.0 later"
1517+ if ({ RUNCMD " ${GEM_BIN} " " ${GEM_INSTALL_CMD} " abbrev || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /g' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
1518+ PRNERR " Failed to install addrev gem"
15701519 exit 1
15711520 fi
1572- rm -f /tmp/rvm_setup.sh
15731521
1574- else
1575- #
1576- # Case for other than Alpine / Debian 10 / Rocky Linux 8
1522+ # [NOTE]
1523+ # A fix for JSON::Fragment has been made in json 2.10.0 and later, which
1524+ # causes an error when running the current package_cloud tool.
1525+ # To avoid this, we will limit it to json 2.9.1.(This will occur in Fedora 42)
15771526 #
1578- if ({ RUNCMD " ${GEM_BIN} " " ${GEM_INSTALL_CMD} " rake package_cloud || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /g' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
1579- PRNERR " Failed to install packagecloud.io upload tools"
1580- exit 1
1527+ GEMJSON_MAJOR_VER=$( " ${GEM_BIN} " list | grep ' ^json[[:space:]]*(' | grep -oP ' \(\K[^\)]*' | awk -F' [^0-9]' ' {print $1}' )
1528+ GEMJSON_MINOR_VER=$( " ${GEM_BIN} " list | grep ' ^json[[:space:]]*(' | grep -oP ' \(\K[^\)]*' | awk -F' [^0-9]' ' {print $2}' )
1529+ GEMJSON_PATCH_VER=$( " ${GEM_BIN} " list | grep ' ^json[[:space:]]*(' | grep -oP ' \(\K[^\)]*' | awk -F' [^0-9]' ' {print $3}' )
1530+ GEMJSON_ALL_VER=$(( GEMJSON_MAJOR_VER* 10000 + GEMJSON_MINOR_VER* 100 + GEMJSON_PATCH_VER))
1531+
1532+ if [ " ${GEMJSON_ALL_VER} " -gt 20901 ]; then
1533+ PRNINFO " Start to uninstall all json gem"
1534+ for json_installed_path in $( " ${GEM_BIN} " env gempath | tr ' :' ' \n' ) ; do
1535+ if ({ RUNCMD " ${GEM_BIN} " uninstall -i " ${json_installed_path} " json -aIx || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /g' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
1536+ PRNERR " Failed to uninstall json gem in ${json_installed_path} , but continue..."
1537+ fi
1538+ done
1539+
1540+ PRNINFO " Start to install json gem 2.9.1"
1541+ if ({ RUNCMD " ${GEM_BIN} " " ${GEM_INSTALL_CMD} " json -v 2.9.1 || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /g' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
1542+ PRNERR " Failed to install json gem"
1543+ exit 1
1544+ fi
15811545 fi
15821546 fi
15831547else
@@ -1619,9 +1583,9 @@ if [ "${RUN_CPPCHECK}" -eq 1 ]; then
16191583 PRNERR " Failed to enable powertools"
16201584 exit 1
16211585 fi
1622- else
1586+ elif echo " ${CI_OSTYPE} " | sed -e ' s#:##g ' | grep -q -i ' rockylinux9 ' ; then
16231587 #
1624- # Rocky 9 or later
1588+ # Rocky 9
16251589 #
16261590 if ({ RUNCMD " ${INSTALLER_BIN} " " ${INSTALL_CMD} " " ${INSTALL_CMD_ARG} " " ${INSTALL_AUTO_ARG} " https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /g' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
16271591 PRNERR " Failed to install epel repository"
@@ -1631,6 +1595,18 @@ if [ "${RUN_CPPCHECK}" -eq 1 ]; then
16311595 PRNERR " Failed to enable epel repository"
16321596 exit 1
16331597 fi
1598+ else
1599+ #
1600+ # Rocky 10 or later
1601+ #
1602+ if ({ RUNCMD " ${INSTALLER_BIN} " " ${INSTALL_CMD} " " ${INSTALL_CMD_ARG} " " ${INSTALL_AUTO_ARG} " https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /g' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
1603+ PRNERR " Failed to install epel repository"
1604+ exit 1
1605+ fi
1606+ if ({ RUNCMD " ${INSTALLER_BIN} " config-manager --enable epel || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /g' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
1607+ PRNERR " Failed to enable epel repository"
1608+ exit 1
1609+ fi
16341610 fi
16351611 if ({ RUNCMD " ${INSTALLER_BIN} " " ${INSTALL_CMD} " " ${INSTALL_CMD_ARG} " " ${INSTALL_AUTO_ARG} " cppcheck || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /g' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
16361612 PRNERR " Failed to install cppcheck"
0 commit comments