arch1t3cht / Aegisub

Cross-platform advanced subtitle editor, with new feature branches. Read the README on the feature branch.
http://www.aegisub.org
Other
755 stars 34 forks source link

Add CI for popular Linux distros #116

Open 0tkl opened 7 months ago

0tkl commented 7 months ago

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.

0tkl commented 6 months ago

~Remove "WIP:" and let's see what's happening on openSUSE Leap build…~

Oops, forgot that PR on cibuilds branch won't trigger CI :-(

0tkl commented 4 months ago

bump to ffms2 5.0 release now

0tkl commented 4 months ago

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 :-(

0tkl commented 4 months ago

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.

0tkl commented 4 months ago

…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.

0tkl commented 4 months ago

fedora:latest bump from 39 to 40, so age decreased from 3 to 2.