https://bugs.kde.org/show_bug.cgi?id=512868

            Bug ID: 512868
           Summary: Build is not reproducible
    Classification: Frameworks and Libraries
           Product: libplasma
      Version First 6.5.3
       Reported In:
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: libplasma
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
  Target Milestone: ---

SUMMARY

Ideally, building the project twice on equivalent systems should result in the
same bit-by-bit result. This helps verify there's been no compromise of build
systems, especially when the project is part of a larger aggregate. You can
read more about this at https://reproducible-builds.org/.

libplasma seems quite close to being reproducible, but to suffer from an issue
similar to https://qt-project.atlassian.net/browse/QTBUG-137440: a missing
explicit library dependency in the CMakeLists.txt of a project using qml leads
to a nondeterminism in what code is generated for it.

This issue was identified while reproducing the NixOS graphical installation
issue, and is tracked there as https://github.com/NixOS/nixpkgs/issues/458839

STEPS TO REPRODUCE

Build libplasma in an 'essentially equivalent' environment, but for example
varying the parallelism between '2' and '16'. 

OBSERVED RESULT

Different generated code / output.

Specifically,  the generated
build/src/declarativeimports/plasmaextracomponents/.rcc/qmlcache/plasmaextracomponentsplugin_qml/BasicPlasmoidHeading_qml.cpp
from
./src/declarativeimports/plasmaextracomponents/qml/BasicPlasmoidHeading.qml is
different. For 6.5.3, the methods not consistently generated are for `visible
at line 127, column 13` and `text at line 128, column 13`.

Both of those refer to PlasmaCore.Action, so perhaps that's the missing link.
QML_NAMED_ELEMENT(Action) is found in
src/declarativeimports/core/corebindingsplugin.h, so maybe
src/declarativeimports/plasmaextracomponents/CMakeLists.txt needs to explicitly
depend on the corebindingsplugin.

I'm not familiar enough with QML to go from here to actually specifying that
dependency, though - I'd be happy to test further if you can point me in the
right direction!

EXPECTED RESULT

The same generated code / output

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to