Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-83186

uic produces nondeterministic output

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Not Evaluated
    • Resolution: Won't Do
    • Affects Version/s: 5.14.1
    • Fix Version/s: None
    • Component/s: Build tools: uic
    • Labels:
      None
    • Environment:
      openSUSE-Tumbleweed 20200326 x86_64
    • Platform/s:
      Linux/X11

      Description

      While working on reproducible builds for openSUSE, I found that

      our kopete-19.2.3 package does not build reproducibly

      unless ASLR is disabled.

      I traced this down to this reproducer:

       

      for i in $(seq 1 6) ; do

        "/usr/lib64/qt5/bin/uic" "-tr" "tr2i18n" "/home/abuild/rpmbuild/BUILD/kopete-19.12.3/protocols/oscar/aim/ui/aimeditaccountui.ui" > x && md5sum x ; done|sort|uniq -c

       

      actual output:

      4 7b8cab4b8b6651929ffd825f9f9f6a6a x
      2 9ca02f5f2069387fd453192c42aeb848 x

       

      expected output:

      should always produce the same output, e.g.

      6 7b8cab4b8b6651929ffd825f9f9f6a6a x

       

       

      diffs look thus:

       

      +++ /home/abuild/rpmbuild/BUILD/kopete-19.12.3/build/protocols/oscar/aim/ui_aimeditaccountui.h 2035-05-03 18:25:27.547478119 +0000
      @@ -533,7 +533,7 @@
      {{ retranslateUi(aimEditAccountUI);}}
      {{ QObject::connect(optionOverrideServer, SIGNAL(toggled(bool)), lblServer}}
      , SLOT(setEnabled(bool)));
      {{ QObject::connect(optionOverrideServer, SIGNAL(toggled(bool)), edtServer}}
      Address, SLOT(setEnabled(bool)));
      - QObject::connect(optionOverrideServer, SIGNAL(toggled(bool)), lblPort,
      SLOT(setEnabled(bool)));
      + QObject::connect(optionOverrideServer, SIGNAL(toggled(bool)), lblPort1,
      {{ SLOT(setEnabled(bool)));}}

       

       

      uic also outputs warnings that seem related:

      /home/abuild/rpmbuild/BUILD/kopete-19.12.3/protocols/oscar/aim/ui/aimeditaccountui.ui: Warning: The name 'lblPort' (QLabel) is already in use, defaulting to 'lblPort1'.

        Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            jkobus Jarek Kobus
            Reporter:
            bmwiedemann Bernhard M. Wiedemann
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes