Skip to content

Conversation

@OlegGirko
Copy link

Qt 5.8.0 introduced format version 2 for resources embedded into executable, and now rcc uses this format by default to generate them.

Unfortunately, v2 format includes timestamps for embedded resource files.
Some of resource files (translations) are generated automatically and have different timestamps for every build.

This means that dash-qt executable is slightly different for every build because resource data contain different timestamps.

As a result, it makes reproducible build extremely difficult.

Fortunately, Qt 5.9.0 introduced --format-version option for rcc.
This change adds configure check for whether rcc accepts this option and uses it to force rcc to generate version 1 format data.

Qt 5.8.0 introduced format version 2 for resources embedded into executable,
and now rcc uses this format by default to generate them.

Unfortunately, v2 format includes timestamps for embedded resource files.
Some of resource files (translations) are generated automatically
and have different timestamps for every build.

This means that dash-qt executable is slightly different for every build
because resource data contain different timestamps.

As a result, it makes reproducible build extremely difficult.

Fortunately, Qt 5.9.0 introduced --format-version option for rcc.
This change adds configure check for whether rcc accepts this option
and uses it to force rcc to generate version 1 format data.

Signed-off-by: Oleg Girko <ol@infoserver.lv>
@UdjinM6 UdjinM6 added this to the 12.2.2 milestone Dec 15, 2017
Copy link

@UdjinM6 UdjinM6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK

@UdjinM6 UdjinM6 merged commit 837c4fc into dashpay:develop Dec 15, 2017
@OlegGirko OlegGirko deleted the force_rcc_use_old_format branch December 15, 2017 15:32
NarubyRiverlione added a commit to NarubyRiverlione/spice that referenced this pull request Feb 4, 2018
* 'spice' of github.com:NarubyRiverlione/spice: (8382 commits)
  updated testnet genessis
  spice images
  more rename
  genesis blocks ports magic message letters start letter addresses
  cleanup : * remove gitian signatures * remove seeds
  rename: more originale files
  rename
  Prepare 0.12.2.3 release notes (dashpay#1846)
  Avoid reference leakage in CKeyHolderStorage::AddKey (dashpay#1840)
  Protect CKeyHolderStorage via mutex (dashpay#1834)
  Skip existing masternode conections on mixing (dashpay#1833)
  Merge pull request dashpay#1836 from lodgepole/feature/backport-11847
  Fix -liquidityprovider option (dashpay#1829)
  Vote on IS only if it was accepted to mempool (dashpay#1826)
  bump version to 0.12.2.3 (dashpay#1827)
  Merge bitcoin#8256: BUG: bitcoin-qt crash
  Swap iterations and fUseInstantSend parameters in ApproximateBestSubset (dashpay#1819)
  Fix crash on exit when -createwalletbackups=0 (dashpay#1810)
  Prepare v0.12.2.2 release notes (dashpay#1769)
  Force rcc to use resource format version 1. (dashpay#1784)
  ...

# Conflicts:
#	contrib/gitian-descriptors/gitian-osx-signer.yml
#	contrib/gitian-descriptors/gitian-win-signer.yml
#	src/chainparams.cpp
#	src/qt/res/icons/bitcoin.icns
#	src/qt/res/icons/bitcoin.ico
#	src/qt/res/icons/bitcoin.png
#	src/qt/res/icons/crownium/about.png
#	src/qt/res/icons/drkblue/about.png
#	src/qt/res/icons/drkblue/bitcoin.png
#	src/qt/res/icons/light/about.png
#	src/qt/res/icons/light/remove.png
#	src/qt/res/icons/remove.png
#	src/qt/res/icons/trad/about.png
#	src/qt/res/icons/trad/remove.png
andvgal pushed a commit to energicryptocurrency/gen2-energi that referenced this pull request Dec 26, 2018
Qt 5.8.0 introduced format version 2 for resources embedded into executable,
and now rcc uses this format by default to generate them.

Unfortunately, v2 format includes timestamps for embedded resource files.
Some of resource files (translations) are generated automatically
and have different timestamps for every build.

This means that dash-qt executable is slightly different for every build
because resource data contain different timestamps.

As a result, it makes reproducible build extremely difficult.

Fortunately, Qt 5.9.0 introduced --format-version option for rcc.
This change adds configure check for whether rcc accepts this option
and uses it to force rcc to generate version 1 format data.

Signed-off-by: Oleg Girko <ol@infoserver.lv>
andvgal added a commit to energicryptocurrency/gen2-energi that referenced this pull request Oct 4, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants