Skip to content

Conversation

ken2812221
Copy link
Contributor

@ken2812221 ken2812221 commented Aug 1, 2018

Since version 3.0, nsis start to support unicode. However, Bionic still use 2.51. So, it might be a good reason to add nsis into dependency list to support unicode.

Fix #13817
Close #8825

TODO:

  • Gitian build should be deterministic

@fanquake
Copy link
Member

fanquake commented Aug 1, 2018

Concept ACK
This and Unicode true was what I was looking into in regards to #13817.

Looks like the whitespace linter is unhappy.

@DrahtBot
Copy link
Contributor

DrahtBot commented Aug 1, 2018

Reviewers, this pull request conflicts with the following ones:

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@maflcko maflcko added this to the 0.18.0 milestone Aug 1, 2018
@maflcko
Copy link
Member

maflcko commented Aug 1, 2018

Since this is not a regression, I have assigned the 0.18.0 milestone for now.

define $(package)_stage_cmds
$(MAKE) install prefix=$($(package)_staging_prefix_dir)
endef

Copy link
Member

Choose a reason for hiding this comment

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

Please use "linux encoding" for the "new line characters"

@laanwj
Copy link
Member

laanwj commented Aug 1, 2018

Crap, one of the reasons we upgraded to bionic in the first place is to upgrade NSIS, not really happy that we end up compiling it anyway now.
But yes, let's put this for 0.18, this is not a new problem (and comes extremely last-minute for 0.17).

@ken2812221 ken2812221 changed the title depends: Add native_nsis to support unicode wip, depends: Add native_nsis to support unicode Aug 2, 2018
@ken2812221 ken2812221 changed the title wip, depends: Add native_nsis to support unicode depends: Add native_nsis to support unicode Aug 2, 2018
$(package)_dependencies=native_zlib

define $(package)_set_vars
$(package)_build_opts = -j4
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm not sure what the best number is here.

Copy link
Member

Choose a reason for hiding this comment

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

Can't you use the passed down number from make depends -j yy?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

nsis is not built by make, so it is incompatible with make jobs.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Or there is a way to get job number?

Copy link
Member

Choose a reason for hiding this comment

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

Not that I am aware of. Other than that you might just set the number of jobs so that they use less than 1GB of RAM, since that is our minimum requirement to get built.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

After testing a few times, there are some edge case fail to cd directories in multi-job. Will remove this.

@ken2812221 ken2812221 changed the title depends: Add native_nsis to support unicode wip, depends: Add native_nsis to support unicode Aug 7, 2018
@laanwj laanwj added the Windows label Aug 7, 2018
@ken2812221
Copy link
Contributor Author

@MarcoFalke This is not ready for gitian build since it is not deterministic.

@ken2812221
Copy link
Contributor Author

I have no idea why the following things would happen? I already put scons into faketime wrapper, but the compiled stub files still contain timestamp in PE header. The alternative way is to hack the compiled PE file timestamp and set it to a constant.

@ken2812221
Copy link
Contributor Author

@theuni Do you have any idea what would break the deterministic?

@maflcko
Copy link
Member

maflcko commented Aug 30, 2018

Maybe it helps if you include the diffoscope output between two consecutive builds?

@ken2812221
Copy link
Contributor Author

ken2812221 commented Aug 30, 2018

Yes, I know it contains current timestamp and checksum, that is the only differnece. But I don't know why it would be there. I already pack scons into faketime wrapper.

@ken2812221
Copy link
Contributor Author

The difference is here:
https://0bin.net/paste/Z5FvTgDDCLs2El3y#fvLayra1H9pE-R0lc/QX026USa0ZYn5PgTWKDCFqkT5

Apparently it is timestamp.

@maflcko
Copy link
Member

maflcko commented Aug 31, 2018

Could you also upload both of the tar.gz results?

@ken2812221
Copy link
Contributor Author

@ken2812221 ken2812221 changed the title wip, depends: Add native_nsis to support unicode [WIP] depends: Add native_nsis to support unicode Sep 11, 2018
@ken2812221
Copy link
Contributor Author

Close it for now. I can't solve the gitian build deterministic issue.

@ken2812221 ken2812221 closed this Sep 16, 2018
@ken2812221 ken2812221 deleted the depends-nsis branch September 16, 2018 06:53
@maflcko
Copy link
Member

maflcko commented Sep 16, 2018

Oh, wait. Why is it required that the depends cache is deterministic? Shouldn't the only requirement be that the resulting bitcoind.exe (et al) is deterministic?
At least that should be the goal when we want to support deterministic builds on any host by default.

If you reopen, I can run DrahtBot on this twice to see what the effective difference is for Gitian builds.

@ken2812221 ken2812221 restored the depends-nsis branch September 16, 2018 16:20
@ken2812221
Copy link
Contributor Author

Why is it required that the depends cache is deterministic?

It has to compile installer and decompressor that runs on Windows.

If you reopen, I can run DrahtBot on this twice to see what the effective difference is for Gitian builds.

Thanks, but you have to clear nsis depends cache manually, otherwise it's deterministic.

@DrahtBot
Copy link
Contributor

Needs rebase

@maflcko
Copy link
Member

maflcko commented Feb 6, 2020

Does this upstream patch fix this? https://sourceforge.net/p/nsis/bugs/1230/

@fanquake
Copy link
Member

fanquake commented Mar 2, 2021

Removing "Up for grabs", as this should be taken care of by #21333.

@bitcoin bitcoin locked as resolved and limited conversation to collaborators Aug 16, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

NSIS: Error launching the installer when login name contains some non-ascii characters NSIS 3 released
5 participants