Bug 263068 - KDE ports fail to build without showing why
Summary: KDE ports fail to build without showing why
Status: Closed Unable to Reproduce
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-kde (group)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-04-05 17:11 UTC by Friedrich Volkmann
Modified: 2023-03-06 13:46 UTC (History)
3 users (show)

See Also:
bugzilla: maintainer-feedback? (kde)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Friedrich Volkmann 2022-04-05 17:11:10 UTC
This happens with some KDE-related ports. The build fails may be caused by some version incompatibilty, but additionally there is an issue with the error message, or the lack of it. It says "FAILED:", but what comes after that in the same line doesn't seem related, or cut off. Also, ninja reports that a subcommand has failed, but doesn't reveal which subcommand. The last reported command (cd /usr/ports/devel/kf5-kservice/work/.build/po/ca/docs/desktoptojson && /usr/local/bin/meinproc5 --stylesheet /usr/local/share/kf5/kdoctools/customization/kde-include-man.xsl --check /usr/ports/devel/kf5-kservice/work/kservice-5.92.0/po/ca/docs/desktoptojson/man-desktoptojson.8.docbook) doesn't fail, as it reports a successful write of the output file and doesn't report an error when executed manually.

My OS version is 12.3-STABLE r371751 on amd64, and /usr/ports has been updated today.

kf5-kservice# cd /usr/ports/devel/kf5-kservice/
kf5-kservice# MAKE_JOBS_UNSAFE=yes make
===>  License LGPL20 accepted by the user
===>   kf5-kservice-5.92.0 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by kf5-kservice-5.92.0 for building
===>  Extracting for kf5-kservice-5.92.0
=> SHA256 Checksum OK for KDE/frameworks/5.92.0/kservice-5.92.0.tar.xz.
===>  Patching for kf5-kservice-5.92.0
===>   kf5-kservice-5.92.0 depends on executable: bison - found
===>   kf5-kservice-5.92.0 depends on file: /usr/local/bin/cmake - found
===>   kf5-kservice-5.92.0 depends on executable: ninja - found
===>   kf5-kservice-5.92.0 depends on executable: msgfmt - found
===>   kf5-kservice-5.92.0 depends on file: /usr/local/bin/meinproc5 - found
===>   kf5-kservice-5.92.0 depends on file: /usr/local/share/ECM/cmake/ECMConfig.cmake - found
===>   kf5-kservice-5.92.0 depends on package: qt5-buildtools>=5.15.2 - found
===>   kf5-kservice-5.92.0 depends on package: qt5-qmake>=5.15.2 - found
===>   kf5-kservice-5.92.0 depends on shared library: libintl.so - found (/usr/local/lib/libintl.so)
===>   kf5-kservice-5.92.0 depends on shared library: libKF5Archive.so - found (/usr/local/lib/libKF5Archive.so)
===>   kf5-kservice-5.92.0 depends on shared library: libKF5ConfigCore.so - found (/usr/local/lib/libKF5ConfigCore.so)
===>   kf5-kservice-5.92.0 depends on shared library: libKF5CoreAddons.so - found (/usr/local/lib/libKF5CoreAddons.so)
===>   kf5-kservice-5.92.0 depends on shared library: libKF5Crash.so - found (/usr/local/lib/libKF5Crash.so)
===>   kf5-kservice-5.92.0 depends on shared library: libKF5DBusAddons.so - found (/usr/local/lib/libKF5DBusAddons.so)
===>   kf5-kservice-5.92.0 depends on shared library: libKF5I18n.so - found (/usr/local/lib/libKF5I18n.so)
===>   kf5-kservice-5.92.0 depends on shared library: libQt5Core.so - found (/usr/local/lib/qt5/libQt5Core.so)
===>   kf5-kservice-5.92.0 depends on shared library: libQt5DBus.so - found (/usr/local/lib/qt5/libQt5DBus.so)
===>   kf5-kservice-5.92.0 depends on shared library: libQt5Gui.so - found (/usr/local/lib/qt5/libQt5Gui.so)
===>   kf5-kservice-5.92.0 depends on shared library: libQt5Xml.so - found (/usr/local/lib/qt5/libQt5Xml.so)
===>  Configuring for kf5-kservice-5.92.0
===>  Performing out-of-source build
/bin/mkdir -p /usr/ports/devel/kf5-kservice/work/.build
-- The C compiler identification is Clang 13.0.0
-- The CXX compiler identification is Clang 13.0.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- 

-- Looking for __GLIBC__
-- Looking for __GLIBC__ - not found
-- Performing Test _OFFT_IS_64BIT
-- Performing Test _OFFT_IS_64BIT - Success
-- Performing Test HAVE_DATE_TIME
-- Performing Test HAVE_DATE_TIME - Success
-- Performing Test BSYMBOLICFUNCTIONS_AVAILABLE
-- Performing Test BSYMBOLICFUNCTIONS_AVAILABLE - Success
-- Found Gettext: /usr/local/bin/msgmerge (found version "0.20.1") 
-- Found FLEX: /usr/local/bin/flex (found version "2.6.4") 
-- Found BISON: /usr/local/bin/bison (found suitable version "3.8.2", minimum required is "3.0") 
-- Looking for mmap
-- Looking for mmap - found
-- Looking for posix_madvise
-- Looking for posix_madvise - found
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- The following OPTIONAL packages have been found:

 * KF5DocTools (required version >= 5.92.0)

-- The following REQUIRED packages have been found:

 * ECM (required version >= 5.92.0), Extra CMake Modules., <https://commits.kde.org/extra-cmake-modules>
 * Qt5 (required version >= 5.15.2)
 * Qt5Xml (required version >= 5.15.2)
 * KF5Config (required version >= 5.92.0)
 * KF5CoreAddons (required version >= 5.92.0)
 * Qt5DBus (required version >= 5.15.2)
 * KF5DBusAddons (required version >= 5.92.0)
 * Gettext
 * KF5I18n (required version >= 5.92.0)
 * FLEX, Fast Lexical Analyzer, <http://flex.sourceforge.net>
   Required for the Trader parser
 * BISON (required version >= 3.0), general-purpose parser generator, <http://www.gnu.org/software/bison>
   Required for the Trader parser
 * Qt5Core

-- The following features have been disabled:

 * QCH, API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)

-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_VERBOSE_MAKEFILE
    THREADS_HAVE_PTHREAD_ARG


-- Build files have been written to: /usr/ports/devel/kf5-kservice/work/.build
===>  Building for kf5-kservice-5.92.0
[  1% 1/78] cd /usr/ports/devel/kf5-kservice/work/.build && /usr/local/bin/cmake -DGETTEXT_MSGFMT_EXECUTABLE=/usr/local/bin/msgfmt -DCOPY_TO=/usr/ports/devel/kf5-kservice/work/.build/locale -DPO_DIR=/usr/ports/devel/kf5-kservice/work/kservice-5.92.0/po -P /usr/local/lib/cmake/KF5I18n/build-pofiles.cmake
[  2% 2/78] cd /usr/ports/devel/kf5-kservice/work/.build && /usr/local/bin/cmake -DPYTHON_EXECUTABLE=/usr/local/bin/python3.8 -D_ki18n_pmap_compile_script=/usr/local/lib/cmake/KF5I18n/ts-pmap-compile.py -DCOPY_TO=/usr/ports/devel/kf5-kservice/work/.build/locale -DPO_DIR=/usr/ports/devel/kf5-kservice/work/kservice-5.92.0/po -P /usr/local/lib/cmake/KF5I18n/build-tsfiles.cmake
[  3% 3/78] cd /usr/ports/devel/kf5-kservice/work/.build/po/ca/docs/desktoptojson && /usr/local/bin/meinproc5 --stylesheet /usr/local/share/kf5/kdoctools/customization/kde-include-man.xsl --check /usr/ports/devel/kf5-kservice/work/kservice-5.92.0/po/ca/docs/desktoptojson/man-desktoptojson.8.docbook
FAILED: po/ca/docs/desktoptojson/desktoptojson.8 /usr/ports/devel/kf5-kservice/work/.build/po/ca/docs/desktoptojson/desktoptojson.8 
cd /usr/ports/devel/kf5-kservice/work/.build/po/ca/docs/desktoptojson && /usr/local/bin/meinproc5 --stylesheet /usr/local/share/kf5/kdoctools/customization/kde-include-man.xsl --check /usr/ports/devel/kf5-kservice/work/kservice-5.92.0/po/ca/docs/desktoptojson/man-desktoptojson.8.docbook
Note: Writing desktoptojson.8
ninja: build stopped: subcommand failed.
*** Error code 1

Stop.
make: stopped in /usr/ports/devel/kf5-kservice
Comment 1 Adriaan de Groot freebsd_committer freebsd_triage 2022-04-09 14:54:42 UTC
meinproc isn't great at reporting errors, but perhaps you can run the last command executed by ninja by hand, to see if anything else shows up?

Basically,

```
cd /usr/ports/devel/kf5-kservice/work/.build/po/ca/docs/desktoptojson
/usr/local/bin/meinproc5 --stylesheet /usr/local/share/kf5/kdoctools/customization/kde-include-man.xsl --check /usr/ports/devel/kf5-kservice/work/kservice-5.92.0/po/ca/docs/desktoptojson/man-desktoptojson.8.docbook
echo $?
```

It **may** be that kdoctools isn't installed, or is installed wrongly?
Comment 2 Friedrich Volkmann 2022-04-09 19:11:26 UTC
desktoptojson# /usr/local/bin/meinproc5 --stylesheet /usr/local/share/kf5/kdoctools/customization/kde-include-man.xsl --check /usr/ports/devel/kf5-kservice/work/kservice-5.92.0/po/ca/docs/desktoptojson/man-desktoptojson.8.docbook
Note: Writing desktoptojson.8
desktoptojson# echo $?
0
desktoptojson# pkg info -Ix doctools
kf5-kdoctools-5.92.0           KF5 documentation generation from docbook

Doesn't look like the error cause, does it?
Comment 3 Adriaan de Groot freebsd_committer freebsd_triage 2022-05-02 18:44:21 UTC
Since this is an affects-only-you thing, it's up to you to move this forward. We either need a way to reproduce this -- I can build this particular port just fine, and poudriere is grinding through 504 ports today doing the same -- or an indication from your machine what's wrong.

- permissions?
- any interesting messages in /var/log/mmessages, /var/log/auth, dmesg
- unusual security settings, permissions in wrkdirs, umask
- repeatable locally? what if you cd into the build dir and run ninja by hand there (after the first failure). can you strace ninja? how about inserting a shell-script called /usr/local/bin/ninja (move the binary out of the way) so you can be more verbose? How about setting ninja flags -- through such a wrapper -- to log more?

Without more information this could be a bad SSD in your system, or a full ZFS filesystem, or just about anything else.
Comment 4 Friedrich Volkmann 2022-05-02 19:52:11 UTC
If I knew what's wrong, I would have already solved it.

- permissions: What permissions are you talking about? The work directory is autocreated, I don't set any permissions there.

- messages: Yes, /var/log/messages and dmesg report:
pid 71848 (meinproc5), jid 0, uid 0: exited on signal 11 (core dumped)
pid 71852 (meinproc5), jid 0, uid 0: exited on signal 11 (core dumped)
pid 71849 (meinproc5), jid 0, uid 0: exited on signal 11 (core dumped)
pid 71853 (meinproc5), jid 0, uid 0: exited on signal 11 (core dumped)
pid 71862 (meinproc5), jid 0, uid 0: exited on signal 11 (core dumped)
pid 71851 (meinproc5), jid 0, uid 0: exited on signal 11 (core dumped)
pid 71850 (meinproc5), jid 0, uid 0: exited on signal 11 (core dumped)
pid 71964 (meinproc5), jid 0, uid 0: exited on signal 11 (core dumped)

- unusual security settings, permissions in wrkdirs, umask: None that I'm aware of. They would certainly cause problems in non-KDE ports as well.

- repeatable locally: Yes.

- [ninja hacking]: I'm not a ninja, let alone a ninja programmer. I don't even know what Ninja is doing and why it is needed. Maybe I'll dig into it when I have more time and I'm in better health.

- bad SSD: No, I have no SSD, only conventional hard drives. No signs of mechanical defects, such as click sounds.

- full ZFS filesystem: No, I only have UFS. Tens of GB free in /usr and /var (where tmp is also located).

- Just about anything else: Please be more specific. I can't send you my entire computer. I need it myself, and the mail carrier would certainly damage the hard disks. They are not shock proof.
Comment 5 Adriaan de Groot freebsd_committer freebsd_triage 2022-05-16 22:07:05 UTC
You have a crashing meinproc. Then it's not strange that there is no error message. If you can find the core files that it is leaving behind -- if that's configured on your system -- you might be able to get a backtrace, helping figure out what's wrong.

I'll try to put together a 12.3 system here to see if I can reproduce the issue.
Comment 6 Adriaan de Groot freebsd_committer freebsd_triage 2022-08-16 19:57:00 UTC
I'm going to close this as "can't reproduce". I put together a 12.3 system, installed qt5 from packages, and then used portsnap to fetch a ports tree. Then I built kf5-kservice. This completed without errors.

If you still have this problem, I would suggest
- use packages rather than ports, if you can
- deinstall kf5-kdoctools, build it cleanly, then try again.

From what you've shown:
- meinproc5 doesn't crash when run by hand (or not in the times you've tried)
- it does crash sometimes, during a port build

Without a coredump, or a backtrace, or a way to reproduce the problem, there's just not much we can do. Your logs suggest there is a coredump *somewhere* on your machine, so a matching backtrace would help just a tiny bit.
Comment 7 devel 2023-03-06 13:46:13 UTC
I had the same problem - crash of meinproc5 while building devel/kf5-kpackage.
Diagnosic of crash meinproc5:

# lldb -c ./work/.build/po/ca/docs/kpackagetool/meinproc5.core /usr/local/bin/meinproc5
(lldb) target create "/usr/local/bin/meinproc5" --core "./work/.build/po/ca/docs/kpackagetool/meinproc5.core"
Core file '/usr/ports/devel/kf5-kpackage/work/.build/po/ca/docs/kpackagetool/meinproc5.core' (x86_64) was loaded.
(lldb) bt
* thread #1, name = 'meinproc5', stop reason = signal SIGSEGV
  * frame #0: 0x000000000020ed31 meinproc5`replaceCharsetHeader(output=0x0000000820e9c3f0) at xslt.cpp:356:56
    frame #1: 0x000000000020d579 meinproc5`doOutput(output=QString @ 0x0000000820e9c3f0, usingStdOut=false, usingOutput=false, outputOption=0x0000000820e9c480, replaceCharset=true) at meinproc_common.cpp:86:13
    frame #2: 0x0000000000209c03 meinproc5`main(argc=5, argv=0x0000000820e9ca10) at meinproc.cpp:183:5
    frame #3: 0x0000000000208160 meinproc5`_start(ap=<unavailable>, cleanup=<unavailable>) at crt1_c.c:73:7


Possible steps of reproduce:
1) upgrade Qt5-ports 
2) upgrade (Major ?) devel/icu 
3) try to build devel/kf5-kpackage 

Solution to fix crash: rebuild devel/qt5-core from ports