Skip to content

[WIP] Update build system to Bitcoin 0.13.2 - #1692

Closed
schinzelh wants to merge 53 commits into
developfrom
update_depends
Closed

[WIP] Update build system to Bitcoin 0.13.2#1692
schinzelh wants to merge 53 commits into
developfrom
update_depends

Conversation

@schinzelh

@schinzelh schinzelh commented Oct 19, 2017

Copy link
Copy Markdown

Our build system is missing some upstream commits, catching up with Bitcoin 0.13.2

fanquake and others added 15 commits October 19, 2017 17:49
Mention ARM executables in the release process documentation
(these were introduced in bitcoin#8188).
As well as that Linux tarballs have changed name to contain an
architecture tuple, instead of `linux32`/`linux64`.
Also mention that `-debug` files should not be uploaded (these were
introduced in bitcoin#8167).
These add very simple sanity checks to ensure that the build/host toolchains
have not changed since the last run. If they have, all ids will change and
packages will be rebuilt.

For more complicated usage (like parsing dpkg), HOST_ID_SALT/BUILD_ID_SALT may
be used to introduce arbitrary data to the ids.
In some cases, failed downloads wouldn't trigger a fallback download attempt.
Namely, checksum mismatches.
Checksums were being verified after download, but not again before extraction
Update FreeType, and change the download location to gnu.org. This is
the other official download location listed on freetype.org
@schinzelh schinzelh changed the title [WIP] Update build system to Bitcoin 0.13 [WIP] Update build system to Bitcoin 0.13.2 Oct 19, 2017
Comment thread doc/release-notes.md Outdated

0.12.1 Change log

dash-cli: arguments privacy

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

-stdin is not available in Dash as of now. It is introduced in Bitcoin PR bitcoin#7550

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Ups, that paragraph slipped in, just wanted to merge the Linux ARM part :)

Comment thread doc/release-notes.md Outdated
properly in JSON RPC processing. This is no longer the case. This also affects
the GUI debug console.

C++11 and Python 3

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

As far as I remember this is also not done yet in Dash

Comment thread doc/release-notes.md Outdated
RPC low-level changes
----------------------

- `gettxoutsetinfo` UTXO hash (`hash_serialized`) has changed. There was a divergence between

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

References bitcoin#7848, which is also not in Dash yet

Comment thread doc/release-notes.md Outdated
32-bit and 64-bit platforms, and the txids were missing in the hashed data. This has been
fixed, but this means that the output will be different than from previous versions.

- Full UTF-8 support in the RPC API. Non-ASCII characters in, for example,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Didn't check this, but I'd assume also not done in Dash yet.

Comment thread doc/release-notes.md Outdated
-------------------

Various code modernizations have been done. The Dash Core code base has
started using C++11. This means that a C++11-capable compiler is now needed for

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Same. As far as I remember, this is not in Dash yet (I have many C++11 related PRs in my pile of backported PRs)

schinzelh and others added 11 commits October 20, 2017 10:00
- create a script to handle split debug. This will also eventually need to check
  targets, and use dsymutil for osx.
- update config.guess/config.sub for bdb for aarch64.
- temporarily disable symbol checks for arm/aarch64
- quit renaming to linux32/linux64 and use the host directly

This also adds a hack to work around an Ubuntu bug in the gcc-multilib package:
https://bugs.launchpad.net/ubuntu/+source/gcc-defaults-armhf-cross/+bug/1347820

The problem is that gcc-multilib conflicts with the aarch toolchain.
gcc-multilib installs a symlink that points
/usr/include/asm -> /usr/include/x86_64-linux-gnu/asm.

Without this link, gcc -m32 can't find asm/errno.h (and others), since
/usr/include/x86_64-linux-gnu isn't in its default include path. But
/usr/include/i386-linux-gnu is (though it doesn't exist on disk).

So work around the problem by linking
/usr/include/i386-linux-gnu/asm -> /usr/include/x86_64-linux-gnu/asm.

The symlink fix is actually quite reasonable, but echoing the password into
sudo is nasty, and should probably be addressed in gitian itself. It makes more
sense to enable passwordless sudo for the build user by default.
C_INCLUDE_PATH and CPLUS_INCLUDE_PATH work globally as though -isystem was used
for each invocation.

Since that changes the build results, force a rebuild of x86 depends by adding
the value to $HOST_ID_SALT.
theuni and others added 3 commits October 23, 2017 11:40
The non-pkg-config case can't use pkg-config to check the version.

Also, make sure that the check is properly guarded in the case of missing
pkg-config macros.
- guard PKG_PROG_PKG_CONFIG with an m4_ifdef. If not building for windows,
  require it
- add nops as necessary in case the ifdef reduces the if/then to nothing
- AC_SUBST some missing _LIBS. These were split out over time, but not all were
  properly substituted. They continued to work if pkg-config is installed
  because it does the AC_SUBST itself
@schinzelh

schinzelh commented Oct 23, 2017

Copy link
Copy Markdown
Author

@codablock what commit are you refering to? I am adding all build system related stuff.

@codablock

Copy link
Copy Markdown

5c62fed

@chaeplin

chaeplin commented Oct 23, 2017

Copy link
Copy Markdown

@schinzelh 2354e50 this one too.

@schinzelh

schinzelh commented Oct 23, 2017

Copy link
Copy Markdown
Author

@chaeplin Thats ok, it fixes #1455 which introduced a superfluous line break to the original patch - just nitpicking :)

knocte and others added 2 commits October 23, 2017 12:53
Changes the error message from:
./autogen.sh: 9: ./autogen.sh: autoreconf: not found

To:
configuration failed, please install autoconf first
@UdjinM6 UdjinM6 added this to the 12.3 milestone Oct 23, 2017
@UdjinM6 UdjinM6 mentioned this pull request Nov 1, 2017
OlegGirko and others added 7 commits November 2, 2017 04:55
This fixes build with glibc 2.25 caused by conflict with CHAR_WIDTH macro
from TS 18661-1:2014.

Also, a patch is added to remove some redundant declarations from fcobjs.c
file because they may conflict with include file autogenerated by gperf.

Signed-off-by: Oleg Girko <ol@infoserver.lv>
Setting PKG_CONFIG_SYSROOT_DIR environment variable to "/"
for building Qt makes pkgconf behave strange
(remove "/" prefix instead of adding it).

And it makes no sense to set this variable for old pkgconfig anyway.

Signed-off-by: Oleg Girko <ol@infoserver.lv>
This is necessary on FreeBSD and MacOSX, at least.

See bitcoin#8834 (comment)
@UdjinM6

UdjinM6 commented Dec 19, 2017

Copy link
Copy Markdown

Need rebase

EDIT: postponing this, @codablock probably has all this covered in his set of backports

@codablock

Copy link
Copy Markdown

Just verified that all backports PRs/commits from this PR are included in the 0.14 backports. We can probably close this one.

@UdjinM6

UdjinM6 commented Jan 29, 2018

Copy link
Copy Markdown

@codablock looks like c6c2c4e and 3adac27 are not part of develop though. And btw bitcoin fixed fontconfig issue via this patch bitcoin@3498a8d (2.12.6 was released later).

@codablock

Copy link
Copy Markdown

Missed these as I only used the list from the PR description. Cherry-picked them into #1884

@UdjinM6

UdjinM6 commented Jan 31, 2018

Copy link
Copy Markdown

Closing in fav of all already backported patches and #1884

@UdjinM6 UdjinM6 closed this Jan 31, 2018
@UdjinM6 UdjinM6 removed this from the 12.3 milestone Jan 31, 2018
@UdjinM6
UdjinM6 deleted the update_depends branch February 17, 2018 13:17
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.