Aegisub
Aegisub copied to clipboard
Add CI for popular Linux distros
- [x] Archlinux
- [x] Debian 11/12
- [x] Debian Testing/Unstable
- [x] Ubuntu 20.04/22.04/24.04
- [x] Fedora Latest/Rawhide
- [x] OpenSUSE Leap Stable/Next
- [x] OpenSUSE Tumbleweed
WIP: At the moment, distro.yml
just try to compile Aegisub and bet if it can pass all tests. May add packaging routine some day. (Hope to finish it for Archlinux before feature_13? ;-) )
The version of FFMS2 I use in the script is 5.0 RC3, will switch to 5.0 final release once it is available (along with your update on its meson.build
).
~T64 transition is ongoing in Debian unstable, still figuring what packages are affected.~ Fixed
openSUSE Leap have relatively old packages (some are even older than Debian 10), so I have to use "experimental" repos. ~However it looks like boost
provided by "experimental" repos causes two icu
with conflicting versions, and thus failed on tests.~ It mysteriously disappeared. Now the problem comes from iconv:
[ RUN ] lagi_format.wchar_t
unknown file: Failure
Unknown C++ exception thrown in the test body.
[ RUN ] lagi_iconv.BasicSetup
../tests/tests/iconv.cpp:25: Failure
Expected: IconvWrapper("UTF-8", "UTF-16LE") doesn't throw an exception.
Actual: it throws.
[ RUN ] lagi_iconv.StrLen2
unknown file: Failure
Unknown C++ exception thrown in the test body.
[ RUN ] lagi_iconv.StrLen4
unknown file: Failure
Unknown C++ exception thrown in the test body.
[ RUN ] lagi_iconv.Conversions
unknown file: Failure
Unknown C++ exception thrown in the test body.
[ RUN ] lagi_iconv.Buffer
unknown file: Failure
Unknown C++ exception thrown in the test body.
[ RUN ] lagi_line.int
unknown file: Failure
Unknown C++ exception thrown in the test body.
[ RUN ] lagi_line.double
unknown file: Failure
Unknown C++ exception thrown in the test body.
[ RUN ] lagi_line.string
unknown file: Failure
Unknown C++ exception thrown in the test body.
~Btw, do you think we should test on some older distros like Debian 10/11 or Ubuntu 20.04?~ Ubuntu 20.04 and Debian 11 are added.
~Remove "WIP:" and let's see what's happening on openSUSE Leap build…~
Oops, forgot that PR on cibuilds branch won't trigger CI :-(
bump to ffms2 5.0 release now
So iconv
in openSUSE Leap supports very few encodings. Even UTF16-*
are unsupported (UCS-2*
aren't quite the same thing to UTF16-*
)
user1@host:/__w/Aegisub/Aegisub> iconv -V
iconv (GNU libc) 2.38
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Ulrich Drepper.
user1@host:/__w/Aegisub/Aegisub> iconv -l
The following list contains all the coded character sets known. This does
not necessarily mean that all combinations of these names can be used for
the FROM and TO command line parameters. One coded character set can be
listed with several different names (aliases).
10646-1:1993, 10646-1:1993/UCS4, ANSI_X3.4-1968, ANSI_X3.4-1986, ANSI_X3.4,
ASCII, CP367, CSASCII, CSUCS4, IBM367, ISO-10646, ISO-10646/UCS2,
ISO-10646/UCS4, ISO-10646/UTF-8, ISO-10646/UTF8, ISO-IR-6, ISO-IR-193,
ISO646-US, ISO_646.IRV:1991, OSF00010020, OSF00010100, OSF00010101,
OSF00010102, OSF00010104, OSF00010105, OSF00010106, OSF05010001, UCS-2,
UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UCS2, UCS4, UNICODEBIG,
UNICODELITTLE, US-ASCII, US, UTF-8, UTF8, WCHAR_T
~~I'll manage to add a test in the root meson.build to know whether system iconv supported UTF-16/32.~~ Even if it can be implemented, I still struggle to compile libiconv on openSUSE Leap :-(
Apply some ugly replacements when building on openSUSE. Now all release
and debug
builds on openSUSE Leap could pass tests.
debugoptimized
builds on openSUSE Leap/Tumbleweed are still broken, which is reported in https://github.com/arch1t3cht/Aegisub/issues/137.
…lol, I don't know that openSUSE Leap image doesn't install glibc-locale-base
by default while Tumbleweed does, until a kind developer revealed that to me. Now glibc-locale-base
provides much more encodings to iconv which resolves the error, normally.
Another change is that we use local boost on openSUSE Leap. We build Aegisub with gcc-13 because of C++17 (and possibly C++20 in the future), but libboost*
provided by devel_tools_c_c++
repo are linked to the default old gcc-7.
fedora:latest
bump from 39 to 40, so age decreased from 3 to 2.