diff --git a/.circleci/config.yml b/.circleci/config.yml index f5dddad093158..3009ff3e817c9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -25,161 +25,163 @@ jobs: PDO_MYSQL_TEST_USER: root PDO_PGSQL_TEST_DSN: 'pgsql:host=127.0.0.1 port=5432 dbname=test user=postgres password=postgres' steps: - - checkout - run: - name: apt - command: | - export DEBIAN_FRONTEND=noninteractive - sudo apt-get update -y - sudo apt-get install -y \ - gcc \ - g++ \ - autoconf \ - bison \ - re2c \ - locales \ - locales-all \ - ldap-utils \ - openssl \ - slapd \ - libgmp-dev \ - libicu-dev \ - libtidy-dev \ - libenchant-2-dev \ - libsasl2-dev \ - libxpm-dev \ - libzip-dev \ - libbz2-dev \ - libsqlite3-dev \ - libwebp-dev \ - libonig-dev \ - libcurl4-openssl-dev \ - libxml2-dev \ - libxslt1-dev \ - libpq-dev \ - libreadline-dev \ - libldap2-dev \ - libsodium-dev \ - libargon2-0-dev \ - libmm-dev \ - libsnmp-dev \ - snmpd \ - `#snmp-mibs-downloader` \ - freetds-dev \ - `#unixodbc-dev` \ - dovecot-core \ - dovecot-pop3d \ - dovecot-imapd \ - sendmail \ - firebird-dev \ - liblmdb-dev \ - libtokyocabinet-dev \ - libdb-dev \ - libqdbm-dev \ - libjpeg-dev \ - libpng-dev \ - libfreetype6-dev - - run: - name: ./configure - command: | - ./buildconf -f - ./configure \ - --enable-debug \ - --enable-zts \ - --enable-option-checking=fatal \ - --prefix=/usr \ - --enable-phpdbg \ - --enable-fpm \ - --with-pdo-mysql=mysqlnd \ - --with-mysqli=mysqlnd \ - --with-pgsql \ - --with-pdo-pgsql \ - --with-pdo-sqlite \ - --enable-intl \ - --without-pear \ - --enable-gd \ - --with-jpeg \ - --with-webp \ - --with-freetype \ - --with-xpm \ - --enable-exif \ - --with-zip \ - --with-zlib \ - --enable-soap \ - --enable-xmlreader \ - --with-xsl \ - --with-tidy \ - --enable-sysvsem \ - --enable-sysvshm \ - --enable-shmop \ - --enable-pcntl \ - --with-readline \ - --enable-mbstring \ - --with-curl \ - --with-gettext \ - --enable-sockets \ - --with-bz2 \ - --with-openssl \ - --with-gmp \ - --enable-bcmath \ - --enable-calendar \ - --enable-ftp \ - --with-enchant=/usr \ - --enable-sysvmsg \ - --with-ffi \ - --enable-zend-test \ - --enable-dl-test=shared \ - --with-ldap \ - --with-ldap-sasl \ - --with-password-argon2 \ - --with-mhash \ - --with-sodium \ - --enable-dba \ - --with-cdb \ - --enable-flatfile \ - --enable-inifile \ - --with-tcadb \ - --with-lmdb \ - --with-qdbm \ - --with-snmp \ - `#--with-unixODBC` \ - `#--with-pdo-odbc=unixODBC,/usr` \ - --with-config-file-path=/etc \ - --with-config-file-scan-dir=/etc/php.d \ - --with-pdo-firebird \ - `#--with-pdo-dblib` \ - --disable-phpdbg \ - `#--enable-werror` - - run: - name: make - no_output_timeout: 30m - command: make -j2 > /dev/null - - run: - name: make install - command: | - sudo make install - sudo mkdir -p /etc/php.d - sudo chmod 777 /etc/php.d - echo opcache.enable_cli=1 > /etc/php.d/opcache.ini - echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini - - run: - name: Test - no_output_timeout: 30m - command: | - sapi/cli/php run-tests.php \ - -d opcache.enable_cli=1 \ - -d opcache.jit_buffer_size=64M \ - -d opcache.jit=tracing \ - -d zend_test.observer.enabled=1 \ - -d zend_test.observer.show_output=0 \ - -P -q -x -j2 \ - -g FAIL,BORK,LEAK,XLEAK \ - --no-progress \ - --offline \ - --show-diff \ - --show-slow 1000 \ - --set-timeout 120 \ - --repeat 2 + command: echo 1 + # - checkout + # - run: + # name: apt + # command: | + # export DEBIAN_FRONTEND=noninteractive + # sudo apt-get update -y + # sudo apt-get install -y \ + # gcc \ + # g++ \ + # autoconf \ + # bison \ + # re2c \ + # locales \ + # locales-all \ + # ldap-utils \ + # openssl \ + # slapd \ + # libgmp-dev \ + # libicu-dev \ + # libtidy-dev \ + # libenchant-2-dev \ + # libsasl2-dev \ + # libxpm-dev \ + # libzip-dev \ + # libbz2-dev \ + # libsqlite3-dev \ + # libwebp-dev \ + # libonig-dev \ + # libcurl4-openssl-dev \ + # libxml2-dev \ + # libxslt1-dev \ + # libpq-dev \ + # libreadline-dev \ + # libldap2-dev \ + # libsodium-dev \ + # libargon2-0-dev \ + # libmm-dev \ + # libsnmp-dev \ + # snmpd \ + # `#snmp-mibs-downloader` \ + # freetds-dev \ + # `#unixodbc-dev` \ + # dovecot-core \ + # dovecot-pop3d \ + # dovecot-imapd \ + # sendmail \ + # firebird-dev \ + # liblmdb-dev \ + # libtokyocabinet-dev \ + # libdb-dev \ + # libqdbm-dev \ + # libjpeg-dev \ + # libpng-dev \ + # libfreetype6-dev + # - run: + # name: ./configure + # command: | + # ./buildconf -f + # ./configure \ + # --enable-debug \ + # --enable-zts \ + # --enable-option-checking=fatal \ + # --prefix=/usr \ + # --enable-phpdbg \ + # --enable-fpm \ + # --with-pdo-mysql=mysqlnd \ + # --with-mysqli=mysqlnd \ + # --with-pgsql \ + # --with-pdo-pgsql \ + # --with-pdo-sqlite \ + # --enable-intl \ + # --without-pear \ + # --enable-gd \ + # --with-jpeg \ + # --with-webp \ + # --with-freetype \ + # --with-xpm \ + # --enable-exif \ + # --with-zip \ + # --with-zlib \ + # --enable-soap \ + # --enable-xmlreader \ + # --with-xsl \ + # --with-tidy \ + # --enable-sysvsem \ + # --enable-sysvshm \ + # --enable-shmop \ + # --enable-pcntl \ + # --with-readline \ + # --enable-mbstring \ + # --with-curl \ + # --with-gettext \ + # --enable-sockets \ + # --with-bz2 \ + # --with-openssl \ + # --with-gmp \ + # --enable-bcmath \ + # --enable-calendar \ + # --enable-ftp \ + # --with-enchant=/usr \ + # --enable-sysvmsg \ + # --with-ffi \ + # --enable-zend-test \ + # --enable-dl-test=shared \ + # --with-ldap \ + # --with-ldap-sasl \ + # --with-password-argon2 \ + # --with-mhash \ + # --with-sodium \ + # --enable-dba \ + # --with-cdb \ + # --enable-flatfile \ + # --enable-inifile \ + # --with-tcadb \ + # --with-lmdb \ + # --with-qdbm \ + # --with-snmp \ + # `#--with-unixODBC` \ + # `#--with-pdo-odbc=unixODBC,/usr` \ + # --with-config-file-path=/etc \ + # --with-config-file-scan-dir=/etc/php.d \ + # --with-pdo-firebird \ + # `#--with-pdo-dblib` \ + # --disable-phpdbg \ + # `#--enable-werror` + # - run: + # name: make + # no_output_timeout: 30m + # command: make -j2 > /dev/null + # - run: + # name: make install + # command: | + # sudo make install + # sudo mkdir -p /etc/php.d + # sudo chmod 777 /etc/php.d + # echo opcache.enable_cli=1 > /etc/php.d/opcache.ini + # echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini + # - run: + # name: Test + # no_output_timeout: 30m + # command: | + # sapi/cli/php run-tests.php \ + # -d opcache.enable_cli=1 \ + # -d opcache.jit_buffer_size=64M \ + # -d opcache.jit=tracing \ + # -d zend_test.observer.enabled=1 \ + # -d zend_test.observer.show_output=0 \ + # -P -q -x -j2 \ + # -g FAIL,BORK,LEAK,XLEAK \ + # --no-progress \ + # --offline \ + # --show-diff \ + # --show-slow 1000 \ + # --set-timeout 120 \ + # --repeat 2 workflows: push-workflow: diff --git a/.github/actions/setup-x64/action.yml b/.github/actions/setup-x64/action.yml index 3ee5cd3f28f25..27fbcf60818d2 100644 --- a/.github/actions/setup-x64/action.yml +++ b/.github/actions/setup-x64/action.yml @@ -7,11 +7,11 @@ runs: set -x sudo service slapd start - docker exec sql1 /opt/mssql-tools18/bin/sqlcmd -S 127.0.0.1 -U SA -C -P "" -Q "create login pdo_test with password='password', check_policy=off; create user pdo_test for login pdo_test; grant alter, control to pdo_test;" - docker exec sql1 /opt/mssql-tools18/bin/sqlcmd -S 127.0.0.1 -U SA -C -P "" -Q "create login odbc_test with password='password', check_policy=off; create user odbc_test for login odbc_test; grant alter, control, delete to odbc_test;" - docker exec sql1 /opt/mssql-tools18/bin/sqlcmd -S 127.0.0.1 -U SA -C -P "" -Q "ALTER SERVER ROLE sysadmin ADD MEMBER odbc_test;" - docker exec sql1 /opt/mssql-tools18/bin/sqlcmd -S 127.0.0.1 -U SA -C -P "" -Q "CREATE DATABASE odbc;" - docker exec sql1 /opt/mssql-tools18/bin/sqlcmd -S 127.0.0.1 -U SA -C -P "" -Q "CREATE DATABASE pdo_odbc;" + # docker exec sql1 /opt/mssql-tools18/bin/sqlcmd -S 127.0.0.1 -U SA -C -P "" -Q "create login pdo_test with password='password', check_policy=off; create user pdo_test for login pdo_test; grant alter, control to pdo_test;" + # docker exec sql1 /opt/mssql-tools18/bin/sqlcmd -S 127.0.0.1 -U SA -C -P "" -Q "create login odbc_test with password='password', check_policy=off; create user odbc_test for login odbc_test; grant alter, control, delete to odbc_test;" + # docker exec sql1 /opt/mssql-tools18/bin/sqlcmd -S 127.0.0.1 -U SA -C -P "" -Q "ALTER SERVER ROLE sysadmin ADD MEMBER odbc_test;" + # docker exec sql1 /opt/mssql-tools18/bin/sqlcmd -S 127.0.0.1 -U SA -C -P "" -Q "CREATE DATABASE odbc;" + # docker exec sql1 /opt/mssql-tools18/bin/sqlcmd -S 127.0.0.1 -U SA -C -P "" -Q "CREATE DATABASE pdo_odbc;" sudo locale-gen de_DE ./.github/scripts/setup-slapd.sh diff --git a/.github/scripts/setup-slapd.sh b/.github/scripts/setup-slapd.sh index f6b976783c77e..556c16eef0a9f 100755 --- a/.github/scripts/setup-slapd.sh +++ b/.github/scripts/setup-slapd.sh @@ -163,6 +163,88 @@ EOF sudo service slapd restart + +echo "=== TLS DEBUG: Testing TLS_PROTOCOL_MAX 3.2 ===" +TEMP_LDAP_CONF=$(mktemp) +echo 'TLS_PROTOCOL_MAX 3.2' > "$TEMP_LDAP_CONF" + +echo "Debug info:" +echo " Temp config file: $TEMP_LDAP_CONF" +echo " Contents:" +cat "$TEMP_LDAP_CONF" +echo "" + +echo " Server TLS configuration check:" +sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(olcTLSProtocolMin=*)' dn olcTLSProtocolMin 2>/dev/null || echo " No TLS protocol min configured" + +echo "" +echo "Checking OpenLDAP config priority order (settings later in list override earlier ones):" + +echo "1. LDAPNOINIT: ${LDAPNOINIT:-not set}" + +echo "2. System file /etc/openldap/ldap.conf:" +if [ -f /etc/openldap/ldap.conf ]; then + echo " EXISTS - Contents:" + cat /etc/openldap/ldap.conf + sudo rm /etc/openldap/ldap.conf + echo " REMOVED to test priority" +else + echo " Does not exist" +fi + +echo "3. User files:" +echo " \$HOME/ldaprc: $([ -f "$HOME/ldaprc" ] && echo "EXISTS" || echo "does not exist")" +if [ -f "$HOME/ldaprc" ]; then cat "$HOME/ldaprc"; fi +echo " \$HOME/.ldaprc: $([ -f "$HOME/.ldaprc" ] && echo "EXISTS" || echo "does not exist")" +if [ -f "$HOME/.ldaprc" ]; then cat "$HOME/.ldaprc"; fi +echo " ./ldaprc: $([ -f "./ldaprc" ] && echo "EXISTS" || echo "does not exist")" +if [ -f "./ldaprc" ]; then cat "./ldaprc"; fi + +echo "4. System file \$LDAPCONF: ${LDAPCONF:-not set}" +if [ -n "$LDAPCONF" ] && [ -f "$LDAPCONF" ]; then + echo " Contents:" + cat "$LDAPCONF" +fi + +echo "5. User files \$LDAPRC related:" +echo " \$LDAPRC: ${LDAPRC:-not set}" +if [ -n "$LDAPRC" ]; then + echo " \$HOME/\$LDAPRC: $([ -f "$HOME/$LDAPRC" ] && echo "EXISTS" || echo "does not exist")" + echo " \$HOME/.\$LDAPRC: $([ -f "$HOME/.$LDAPRC" ] && echo "EXISTS" || echo "does not exist")" + echo " ./\$LDAPRC: $([ -f "./$LDAPRC" ] && echo "EXISTS" || echo "does not exist")" +fi + +echo "6. Environment variables \$LDAP