Skip to content

--without-gui for building without GUI support#655

Merged
achow101 merged 2 commits into
bitcoin-core:masterfrom
kiminuo:feature/2022-12-09-no-gui
Jan 3, 2023
Merged

--without-gui for building without GUI support#655
achow101 merged 2 commits into
bitcoin-core:masterfrom
kiminuo:feature/2022-12-09-no-gui

Conversation

@kiminuo
Copy link
Copy Markdown
Contributor

@kiminuo kiminuo commented Dec 9, 2022

Alternative to #561

Addresses #561 (comment):

Instead of a new script, I would prefer if an option were just added to the existing script(s) that would disable the qt build.

…out-gui` as their first parameters to build without the GUI support.
@kiminuo kiminuo marked this pull request as ready for review December 9, 2022 14:02
@kiminuo
Copy link
Copy Markdown
Contributor Author

kiminuo commented Jan 2, 2023

@achow101 Friendly ping

@KayBeSee
Copy link
Copy Markdown
Contributor

KayBeSee commented Jan 3, 2023

I looked at this a few weeks ago but was having issues building on my raspberry pi. I think it was an issue installing dependencies, etc and not these code changes. IIRC, I was able to build it fine on my mac.

I will take another look at it this week, but I am really excited you took the time to add this flag!

@achow101
Copy link
Copy Markdown
Member

achow101 commented Jan 3, 2023

ACK f6d246a

@achow101 achow101 merged commit 4f3ca2f into bitcoin-core:master Jan 3, 2023
@kiminuo kiminuo deleted the feature/2022-12-09-no-gui branch January 3, 2023 20:46
achow101 added a commit that referenced this pull request Jan 30, 2024
3d3c02d Improve (Kiminuo)
ee3cf5f Add release instructions (Kiminuo)
d93c8f7 Add support for arm64 (Kiminuo)

Pull request description:

  Related to #345
  Related to WalletWasabi/WalletWasabi#4051 (comment)
  Discussion: Some discussion here: kiminuo#1

  This PR just shows how to do a deterministic build for `arm64` architecture. The hope is HWI's support for `arm64` will improve a bit.

  ### Setup

  To set up your environment, install:

  ```s
  sudo apt install qemu-user-static
  ```

  ### Build for arm64

  Use [docker buildx](https://docs.docker.com/buildx/working-with-buildx/) to replicate [deterministic build instructions](https://github.com/bitcoin-core/HWI/blob/master/docs/development/release-process.rst#deterministic-builds-with-docker) for the arm64 build:

  ```s
  docker buildx build --no-cache --platform linux/arm64 -t hwi-builder -f contrib/build.Dockerfile .

  # Note the use of "--without-gui".
  docker run --platform linux/arm64 -it --rm --name hwi-builder -v $PWD:/opt/hwi  --workdir /opt/hwi hwi-builder /bin/bash -c "contrib/build_bin.sh --without-gui && contrib/build_dist.sh --without-gui"
  ```

  i.e. the change is:

  ```diff
  -docker build --no-cache -t hwi-builder -f contrib/build.Dockerfile .
  -docker run -it --name hwi-builder -v $PWD:/opt/hwi --rm  --workdir /opt/hwi hwi-builder /bin/bash -c "contrib/build_bin.sh && contrib/build_dist.sh && contrib/build_wine.sh"
  +docker buildx build --no-cache --platform linux/arm64 -t hwi-builder -f contrib/build.Dockerfile .
  +docker run --platform linux/arm64 -it --rm --name hwi-builder -v $PWD:/opt/hwi  --workdir /opt/hwi hwi-builder /bin/bash -c "contrib/build_bin.sh --without-gui && contrib/build_dist.sh --without-gui"
  ```

  ### Resources

  * https://docs.docker.com/build/building/multi-platform/#building-multi-platform-images
  * https://medium.com/@artur.klauser/building-multi-architecture-docker-images-with-buildx-27d80f7e2408

  ## Limitations

  ### No GUI support

  So far I had no luck with building `hwi-qt` because I get the following error

  ```
  Installing dependencies from lock file

  Package operations: 14 installs, 0 updates, 0 removals

    • Installing shiboken2 (5.15.2): Failed

    RuntimeError

    Unable to find installation candidates for shiboken2 (5.15.2)

    at ~/.pyenv/versions/3.9.7/lib/python3.9/site-packages/poetry/installation/chooser.py:72 in choose_for
         68│
         69│             links.append(link)
         70│
         71│         if not links:
      →  72│             raise RuntimeError(
         73│                 "Unable to find installation candidates for {}".format(package)
         74│             )
         75│
         76│         # Get the best link
  ```

  during execution of [`poetry install -E qt`](https://github.com/kiminuo/HWI/blob/a025af3ee3fdf0bac8dbdbc51b9e82ab946660b4/contrib/build_bin.sh#L12)

  That's why I use `build_bin.sh --without-gui` (see #655)

ACKs for top commit:
  achow101:
    ACK 3d3c02d

Tree-SHA512: 3df877ec3da07997c8281722ea0ec4687d850f1fec33cb5664e3f03cd8854cb02a90ce799da2123a88058b681fbb2bad31bdacbb485474d19fa88b60a4b73d83
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.

3 participants