Bug 2231905

Summary: mozc is incompatible with abseil-cpp 20230802.0 due to use of removed internals for CLI flags
Product: [Fedora] Fedora Reporter: Ben Beasley <code>
Component: mozcAssignee: Akira TAGOH <tagoh>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 39CC: i18n-bugs, robinlee.sysu, tagoh, tfujiwar, yanqiyu01
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: mozc-2.29.5111.102-3.fc40 mozc-2.29.5111.102-3.fc39 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-09-08 13:04:44 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2229015, 2231908    

Description Ben Beasley 2023-08-14 15:11:46 UTC
Description of problem:

I am working on updating abseil-cpp[1] to the latest LTS release, 20230802.0[2], in F40/Rawhide and, unless the timeline slips too much, in F39/Branched.

An impact check in COPR[3] shows that mozc is not compatible because it uses internal symbols from the absl::flags_internal that are no longer present in the 20230802.0[4].

Version-Release number of selected component (if applicable):

2.29.5111.102-2


How reproducible:

Steps to Reproduce:

1. fedpkg co abseil-cpp
2. cd abseil-cpp
3. git remote add music https://src.fedoraproject.org/forks/music/rpms/abseil-cpp.git
4. git fetch --all
5. git checkout music/v20230802.0
6. fedpkg --release rawhide mockbuild
7. cd ..
8. fedpkg co mozc
9. cd mozc
10. mock -r fedora-rawhide-x86_64 --clean
11. mock -r fedora-rawhide-x86_64 -i ../abseil-cpp/results_abseil-cpp/20230802.0/1.fc40/{abseil-cpp-20230802.0-1.fc40.x86_64.rpm,abseil-cpp-testing-20230802.0-1.fc40.x86_64.rpm,abseil-cpp-devel-20230802.0-1.fc40.x86_64.rpm}
12. fedpkg mockbuild --no-clean


Actual results:

[52/142] g++ -MMD -MF obj/base/base_core.init_mozc.o.d -DOS_LINUX -DMOZC_BUILD -
DCHANNEL_DEV -DENABLE_GTK_RENDERER '-DMOZC_SERVER_DIR="/usr/libexec/mozc"' '-DMO
ZC_DOCUMENT_DIR="/usr/lib/mozc/documents"' -DNDEBUG -DQT_NO_DEBUG -DMOZC_NO_LOGG
ING -DIGNORE_HELP_FLAG -DIGNORE_INVALID_FLAG -I../../third_party/abseil-cpp -I/b
uilddir/build/BUILD/mozc-2.29.5111.102 -Igen -fmessage-length=0 -fno-strict-alia
sing -funsigned-char -pipe -pthread -O2 -flto=auto -ffat-lto-objects -fexception
s -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-s
ecurity -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -spe
cs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unw
ind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno
-omit-leaf-frame-pointer -Wall -Wno-char-subscripts -Wno-sign-compare -Wno-depre
cated-declarations -Wwrite-strings -fPIC -fno-exceptions -O2 -O2 -flto=auto -ffa
t-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-s
ecurity -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -spe
cs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unw
ind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno
-omit-leaf-frame-pointer -Wno-deprecated -std=c++17  -c ../../base/init_mozc.cc 
-o obj/base/base_core.init_mozc.o
FAILED: obj/base/base_core.init_mozc.o
g++ -MMD -MF obj/base/base_core.init_mozc.o.d -DOS_LINUX -DMOZC_BUILD -DCHANNEL_
DEV -DENABLE_GTK_RENDERER '-DMOZC_SERVER_DIR="/usr/libexec/mozc"' '-DMOZC_DOCUME
NT_DIR="/usr/lib/mozc/documents"' -DNDEBUG -DQT_NO_DEBUG -DMOZC_NO_LOGGING -DIGN
ORE_HELP_FLAG -DIGNORE_INVALID_FLAG -I../../third_party/abseil-cpp -I/builddir/b
uild/BUILD/mozc-2.29.5111.102 -Igen -fmessage-length=0 -fno-strict-aliasing -fun
signed-char -pipe -pthread -O2 -flto=auto -ffat-lto-objects -fexceptions -g -gre
cord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -
Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/l
ib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-table
s -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-lea
f-frame-pointer -Wall -Wno-char-subscripts -Wno-sign-compare -Wno-deprecated-dec
larations -Wwrite-strings -fPIC -fno-exceptions -O2 -O2 -flto=auto -ffat-lto-obj
ects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -
Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/l
ib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-table
s -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-lea
f-frame-pointer -Wno-deprecated -std=c++17  -c ../../base/init_mozc.cc -o obj/ba
se/base_core.init_mozc.o
../../base/init_mozc.cc: In function ‘void mozc::{anonymous}::ParseCommandLineFl
ags(int, char**)’:
../../base/init_mozc.cc:90:29: error: ‘absl::lts_20230802::flags_internal::ArgvListAction’ has not been declared
   90 |       absl::flags_internal::ArgvListAction::kRemoveParsedArgs,
      |                             ^~~~~~~~~~~~~~


Expected results:

Build succeeds, as it does with abseil-cpp-20230125.3-2.fc39.


Additional info:

The package fcitx5-mozc is also affected; since it is a fork, whatever works here should work there.

I am happy to help with this as much as I reasonably can, including working with mozc upstream if necessary. However, it’s not immediately obvious to me how usage of these internal APIs should be replaced.

[1] https://src.fedoraproject.org/rpms/abseil-cpp/pull-request/14

[2] https://github.com/abseil/abseil-cpp/releases/tag/20230802.0

[3] https://copr.fedorainfracloud.org/coprs/music/abseil-cpp/packages/

[4] https://github.com/google/mozc/blob/f14a3f49cb56adb4386cb264133a01b32929dfb7/src/base/init_mozc.cc#L90-L94

Comment 1 Ben Beasley 2023-08-14 15:37:58 UTC
I opened a discussion with upstream at https://github.com/google/mozc/issues/790.

Comment 2 Fedora Release Engineering 2023-08-16 08:06:46 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle.
Changing version to 39.

Comment 3 Akira TAGOH 2023-08-17 13:14:51 UTC
Fixed in git but not yet pushed the build to koji. please feel free to build it when you are going to update packages around abseil.

Comment 4 Fedora Update System 2023-09-06 13:49:01 UTC
FEDORA-2023-48a12fa02e has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2023-48a12fa02e

Comment 5 Fedora Update System 2023-09-06 13:49:11 UTC
FEDORA-2023-b5fb7bba8c has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-b5fb7bba8c

Comment 6 Fedora Update System 2023-09-07 02:24:19 UTC
FEDORA-2023-b5fb7bba8c has been pushed to the Fedora 39 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-b5fb7bba8c`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-b5fb7bba8c

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 7 Fedora Update System 2023-09-08 13:04:44 UTC
FEDORA-2023-48a12fa02e has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 8 Fedora Update System 2023-09-17 02:03:41 UTC
FEDORA-2023-b5fb7bba8c has been pushed to the Fedora 39 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-b5fb7bba8c`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-b5fb7bba8c

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 9 Fedora Update System 2023-09-18 00:16:22 UTC
FEDORA-2023-b5fb7bba8c has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.