Fix gettext on locale bug (#634)

* Fix gettext locale sanity check failure bug

* Fix phpstan

* Add tests

* Add additional attr build configure args

* Remove windows test

* Fix attr configure arg

* Fix attr configure bug on gnu docker and alpine docker

* Add gettext-devel for doctor

* weird change for gnu docker container (#643)

Co-authored-by: Marc Henderkes <m.henderkes@pc-college.de>

---------

Co-authored-by: Marc <m@pyc.ac>
Co-authored-by: Marc Henderkes <m.henderkes@pc-college.de>
This commit is contained in:
Jerry Ma
2025-03-14 15:25:51 +08:00
committed by GitHub
parent 39a66daf04
commit 4cc985a39b
9 changed files with 20 additions and 12 deletions

View File

@@ -18,8 +18,10 @@ trait attr
'CFLAGS' => trim('-I' . BUILD_INCLUDE_PATH . ' ' . $this->getLibExtraCFlags()),
'LDFLAGS' => trim('-L' . BUILD_LIB_PATH . ' ' . $this->getLibExtraLdFlags()),
'LIBS' => $this->getLibExtraLibs(),
])->execWithEnv('./autogen.sh')
->execWithEnv('./configure --prefix= --enable-static --disable-shared --disable-nls')
])
->execWithEnv('libtoolize --force --copy')
->execWithEnv('./autogen.sh')
->execWithEnv('./configure --prefix= --enable-static --disable-shared --with-pic --disable-nls')
->execWithEnv("make -j {$this->builder->concurrency}")
->exec('make install DESTDIR=' . BUILD_ROOT_PATH);

View File

@@ -35,6 +35,7 @@ trait libacl
'LDFLAGS' => trim('-L' . BUILD_LIB_PATH . ' ' . $this->getLibExtraLdFlags()),
'LIBS' => $this->getLibExtraLibs(),
])
->execWithEnv('libtoolize --force --copy')
->execWithEnv('./autogen.sh')
->execWithEnv('./configure --prefix= --enable-static --disable-shared --disable-tests --disable-nls')
->execWithEnv("make -j {$this->builder->concurrency}")

View File

@@ -37,7 +37,7 @@ class LinuxToolCheckList
'git', 'autoconf', 'automake',
'tar', 'unzip', 'gzip', 'gcc',
'bzip2', 'cmake', 'patch',
'xz', 'libtool',
'xz', 'libtool', 'gettext-devel',
];
public const TOOLS_ARCH = [
@@ -47,6 +47,7 @@ class LinuxToolCheckList
private const PROVIDED_COMMAND = [
'binutils-gold' => 'ld.gold',
'base-devel' => 'automake',
'gettext-devel' => 'gettext',
];
/** @noinspection PhpUnused */

View File

@@ -14,7 +14,7 @@ if (!file_exists('locale/en_US/LC_MESSAGES/test.mo')) {
file_put_contents('locale/en_US/LC_MESSAGES/test.mo', base64_decode($mo));
}
putenv('LANG=en_US');
setlocale(LC_ALL, 'en_US');
assert(setlocale(LC_ALL, 'en_US.utf-8') === 'en_US.utf-8');
$domain = 'test';
bindtextdomain($domain, 'locale/');

View File

@@ -21,7 +21,7 @@ $test_php_version = [
// test os (macos-13, macos-14, ubuntu-latest, windows-latest are available)
$test_os = [
// 'macos-13',
'macos-13',
'macos-14',
'ubuntu-latest',
// 'windows-latest',
@@ -40,7 +40,7 @@ $prefer_pre_built = false;
// If you want to test your added extensions and libs, add below (comma separated, example `bcmath,openssl`).
$extensions = match (PHP_OS_FAMILY) {
'Linux', 'Darwin' => 'imagick',
'Linux', 'Darwin' => 'gettext',
'Windows' => 'bcmath',
};