Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 26 additions & 26 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
env:
SHELLCHECK_VERSION: v0.7.1
LC_ALL: C
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
defaults:
run:
shell: bash
Expand Down Expand Up @@ -79,7 +79,7 @@ jobs:
CPPCHECK_BIN_DIR: ${{ github.workspace }}/.cppcheck
CPPCHECK_BUILD_DIR: ${{ github.workspace }}/.ci-cppcheck
LC_ALL: C
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
defaults:
run:
shell: bash
Expand Down Expand Up @@ -150,16 +150,16 @@ jobs:
matrix:
config:
- name: Linux
os: ubuntu-20.04
os: ubuntu-22.04
python-version: '3.8'
packages: python3-zmq qttools5-dev qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo
cc: gcc
cxx: g++

- name: Linux-latest
os: ubuntu-22.04
os: ubuntu-24.04
python-version: '3.8'
packages: python3-zmq qttools5-dev qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo
packages: python3-zmq qttools5-dev qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev libevent-dev bsdmainutils libboost-system1.74-dev libboost-filesystem1.74-dev libboost-chrono1.74-dev libboost-test1.74-dev libboost-thread1.74-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo
cc: gcc
cxx: g++

Expand Down Expand Up @@ -264,7 +264,7 @@ jobs:
config:
- name: x64-Linux
id: Linux-x86_64-nodepends
os: ubuntu-20.04
os: ubuntu-22.04
python-version: '3.8'
packages: python3-zmq qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo
unit_tests: true
Expand All @@ -274,9 +274,9 @@ jobs:

- name: x64-Linux-latest
id: Linux-x86_64-nodepends-latest
os: ubuntu-22.04
os: ubuntu-24.04
python-version: '3.8'
packages: python3-zmq qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo
packages: python3-zmq qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev libevent-dev bsdmainutils libboost-system1.74-dev libboost-filesystem1.74-dev libboost-chrono1.74-dev libboost-test1.74-dev libboost-thread1.74-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo
unit_tests: true
functional_tests: true
goal: install
Expand Down Expand Up @@ -431,15 +431,15 @@ jobs:
config:
- name: x64-Linux
id: Linux-x86_64-nodepends-tests
os: ubuntu-20.04
os: ubuntu-22.04
python-version: '3.8'
packages: python3-zmq libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev

- name: x64-Linux-latest
id: Linux-x86_64-nodepends-latest-tests
os: ubuntu-22.04
os: ubuntu-24.04
python-version: '3.8'
packages: python3-zmq libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev
packages: python3-zmq libevent-dev bsdmainutils libboost-system1.74-dev libboost-filesystem1.74-dev libboost-chrono1.74-dev libboost-test1.74-dev libboost-thread1.74-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev

- name: x64-macOS
id: macOS-nodepends
Expand Down Expand Up @@ -505,35 +505,35 @@ jobs:
matrix:
config:
- name: ARM 32-bit
os: ubuntu-20.04
os: ubuntu-22.04
host: arm-linux-gnueabihf
packages: g++-arm-linux-gnueabihf

- name: AARCH64
os: ubuntu-20.04
os: ubuntu-22.04
host: aarch64-linux-gnu
packages: g++-aarch64-linux-gnu

- name: Win64
os: ubuntu-20.04
os: ubuntu-22.04
host: x86_64-w64-mingw32
packages: nsis g++-mingw-w64-x86-64 wine-binfmt wine64

- name: 32-bit + dash
os: ubuntu-20.04
os: ubuntu-22.04
host: i686-pc-linux-gnu
packages: g++-multilib python3-zmq

- name: x86_64 Linux
os: ubuntu-20.04
os: ubuntu-22.04
host: x86_64-unknown-linux-gnu
packages: python3-zmq
dep_opts: DEBUG=1

- name: macOS 10.12
os: ubuntu-20.04
os: ubuntu-22.04
host: x86_64-apple-darwin16
packages: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools
packages: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools xorriso libtinfo5
XCODE_VERSION: 11.3.1
XCODE_BUILD_ID: 11C505

Expand Down Expand Up @@ -612,7 +612,7 @@ jobs:
config:
- name: ARM 32-bit [GOAL:install]
id: ARM32-build
os: ubuntu-20.04
os: ubuntu-22.04
host: arm-linux-gnueabihf
packages: python3 g++-arm-linux-gnueabihf
unit_tests: false
Expand All @@ -624,7 +624,7 @@ jobs:

- name: AARCH64 [GOAL:install]
id: ARM64-build
os: ubuntu-20.04
os: ubuntu-22.04
host: aarch64-linux-gnu
packages: g++-aarch64-linux-gnu
unit_tests: false
Expand All @@ -634,7 +634,7 @@ jobs:

- name: Win64 [GOAL:deploy]
id: Win64-build
os: ubuntu-20.04
os: ubuntu-22.04
host: x86_64-w64-mingw32
packages: nsis g++-mingw-w64-x86-64 wine-binfmt wine64
unit_tests: false
Expand All @@ -645,7 +645,7 @@ jobs:

- name: x86_64 Linux [GOAL:install]
id: Linux-x86_64-build
os: ubuntu-20.04
os: ubuntu-22.04
host: x86_64-unknown-linux-gnu
packages: python3-zmq
unit_tests: true
Expand All @@ -655,9 +655,9 @@ jobs:

- name: macOS 10.12 [GOAL:deploy]
id: macOS10.12-build
os: ubuntu-20.04
os: ubuntu-22.04
host: x86_64-apple-darwin16
packages: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools
packages: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools xorriso libtinfo5
XCODE_VERSION: 11.3.1
XCODE_BUILD_ID: 11C505
unit_tests: false
Expand Down Expand Up @@ -815,14 +815,14 @@ jobs:
config:
- name: x86_64 Linux [Full Functional Tests]
id: Linux-x86_64-tests
os: ubuntu-20.04
os: ubuntu-22.04
host: x86_64-unknown-linux-gnu
packages: python3-zmq
test_runner_extra: "--coverage --all --exclude feature_dbcrash"

- name: x86_64 Linux [Only functional tests on legacy pre-HD wallets]
id: Linux-x86_64-legacy-tests
os: ubuntu-20.04
os: ubuntu-22.04
host: x86_64-unknown-linux-gnu
packages: python3-zmq
test_runner_extra: "--legacywallet"
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ src/qt/test/moc*.cpp
*.log
*.trs
*.dmg
*.iso

*.json.h
*.raw.h
Expand Down
9 changes: 7 additions & 2 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ space := $(empty) $(empty)
OSX_APP=PIVX-Qt.app
OSX_VOLNAME = $(subst $(space),-,$(PACKAGE_NAME))
OSX_DMG = $(OSX_VOLNAME).dmg
OSX_TEMP_ISO = $(OSX_DMG:.dmg=).temp.iso
OSX_BACKGROUND_SVG=background.svg
OSX_BACKGROUND_IMAGE=background.tiff
OSX_BACKGROUND_IMAGE_DPIS=36 72
Expand Down Expand Up @@ -160,8 +161,12 @@ $(APP_DIST_DIR)/Applications:

$(APP_DIST_EXTRAS): $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/PIVX-Qt

$(OSX_DMG): $(APP_DIST_EXTRAS)
$(GENISOIMAGE) -no-cache-inodes -D -l -probe -V "$(OSX_VOLNAME)" -no-pad -r -dir-mode 0755 -apple -o $@ dist
.INTERMEDIATE: $(OSX_TEMP_ISO)
$(OSX_TEMP_ISO): $(APP_DIST_EXTRAS)
$(XORRISOFS) -D -l -V "$(OSX_VOLNAME)" -no-pad -r -dir-mode 0755 -o $@ dist

$(OSX_DMG): $(OSX_TEMP_ISO)
$(DMG) dmg "$<" "$@"

dpi%.$(OSX_BACKGROUND_IMAGE): contrib/macdeploy/$(OSX_BACKGROUND_SVG)
sed 's/PACKAGE_NAME/$(PACKAGE_NAME)/' < "$<" | $(RSVG_CONVERT) -f png -d $* -p $* | $(IMAGEMAGICK_CONVERT) - $@
Expand Down
3 changes: 2 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -594,7 +594,8 @@ case $host in
*)
AC_PATH_TOOL([INSTALLNAMETOOL], [install_name_tool], [install_name_tool])
AC_PATH_TOOL([OTOOL], [otool], [otool])
AC_PATH_PROGS([GENISOIMAGE], [genisoimage mkisofs], [genisoimage])
AC_PATH_PROGS([XORRISOFS], [xorrisofs], [xorrisofs])
AC_PATH_PROGS([DMG], [dmg], [dmg])
AC_PATH_PROGS([RSVG_CONVERT], [rsvg-convert rsvg], [rsvg-convert])
AC_PATH_PROGS([IMAGEMAGICK_CONVERT], [convert], [convert])
AC_PATH_PROGS([TIFFCP], [tiffcp], [tiffcp])
Expand Down
5 changes: 3 additions & 2 deletions contrib/gitian-descriptors/gitian-osx-signer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ architectures:
- "amd64"
packages:
- "faketime"
- "xorriso"
remotes:
- "url": "https://github.com/pivx-project/pivx-detached-sigs.git"
"dir": "signature"
Expand All @@ -18,7 +19,7 @@ script: |
WRAP_DIR=$HOME/wrapped
mkdir -p ${WRAP_DIR}
export PATH="$PWD":$PATH
FAKETIME_PROGS="dmg genisoimage"
FAKETIME_PROGS="dmg xorrisofs"

# Create global faketime wrappers
for prog in ${FAKETIME_PROGS}; do
Expand All @@ -36,5 +37,5 @@ script: |
tar -xf ${UNSIGNED}
OSX_VOLNAME="$(cat osx_volname)"
./detached-sig-apply.sh ${UNSIGNED} signature/osx
${WRAP_DIR}/genisoimage -no-cache-inodes -D -l -probe -V "${OSX_VOLNAME}" -no-pad -r -dir-mode 0755 -apple -o uncompressed.dmg signed-app
${WRAP_DIR}/xorrisofs -D -l -V "${OSX_VOLNAME}" -no-pad -r -dir-mode 0755 -o uncompressed.dmg signed-app
${WRAP_DIR}/dmg dmg uncompressed.dmg ${OUTDIR}/${SIGNED}
11 changes: 5 additions & 6 deletions contrib/gitian-descriptors/gitian-osx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ packages:
- "python3-dev"
- "python3-setuptools"
- "fonts-tuffy"
- "xorriso"
remotes:
- "url": "https://github.com/pivx-project/pivx.git"
"dir": "pivx"
Expand All @@ -38,9 +39,9 @@ script: |

WRAP_DIR=$HOME/wrapped
HOSTS="x86_64-apple-darwin16"
CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests --disable-online-rust GENISOIMAGE=$WRAP_DIR/genisoimage"
CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests --disable-online-rust XORRISOFS=${WRAP_DIR}/xorrisofs DMG=$WRAP_DIR/dmg"
FAKETIME_HOST_PROGS=""
FAKETIME_PROGS="ar ranlib date dmg genisoimage"
FAKETIME_PROGS="ar ranlib date dmg xorrisofs"

export QT_RCC_TEST=1
export QT_RCC_SOURCE_DATE_OVERRIDE=1
Expand Down Expand Up @@ -143,21 +144,19 @@ script: |

make osx_volname
make deploydir
OSX_VOLNAME="$(cat osx_volname)"
mkdir -p unsigned-app-${i}
cp osx_volname unsigned-app-${i}/
cp contrib/macdeploy/detached-sig-apply.sh unsigned-app-${i}
cp contrib/macdeploy/detached-sig-create.sh unsigned-app-${i}
cp ${BASEPREFIX}/${i}/native/bin/dmg ${BASEPREFIX}/${i}/native/bin/genisoimage unsigned-app-${i}
cp ${BASEPREFIX}/${i}/native/bin/dmg unsigned-app-${i}
cp ${BASEPREFIX}/${i}/native/bin/${i}-codesign_allocate unsigned-app-${i}/codesign_allocate
cp ${BASEPREFIX}/${i}/native/bin/${i}-pagestuff unsigned-app-${i}/pagestuff
mv dist unsigned-app-${i}
pushd unsigned-app-${i}
find . | sort | tar --mtime="$REFERENCE_DATETIME" --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-osx-unsigned.tar.gz
popd

make deploy
${WRAP_DIR}/dmg dmg "${OSX_VOLNAME}.dmg" ${OUTDIR}/${DISTNAME}-osx-unsigned.dmg
make deploy OSX_DMG="${OUTDIR}/${DISTNAME}-osx-unsigned.dmg"

cd installed
find . -name "lib*.la" -delete
Expand Down
14 changes: 5 additions & 9 deletions contrib/macdeploy/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,19 +92,15 @@ created using these tools. The build process has been designed to avoid includin
SDK's files in Gitian's outputs. All interim tarballs are fully deterministic and may be freely
redistributed.

`genisoimage` is used to create the initial DMG. It is not deterministic as-is, so it has been
patched. A system `genisoimage` will work fine, but it will not be deterministic because
the file-order will change between invocations. The patch can be seen here: [cdrkit-deterministic.patch](https://github.com/pivx-project/pivx/blob/master/depends/patches/native_cdrkit/cdrkit-deterministic.patch).
No effort was made to fix this cleanly, so it likely leaks memory badly, however it's only used for
a single invocation, so that's no real concern.
[`xorrisofs`](https://www.gnu.org/software/xorriso/) is used to create the DMG.

`genisoimage` cannot compress DMGs, so afterwards, the DMG tool from the
`libdmg-hfsplus` project is used to compress it. There are several bugs in this tool and its
maintainer has seemingly abandoned the project.
`xorrisofs` cannot compress DMGs, so afterwards, the DMG tool from the
`libdmg-hfsplus` project is used to compress it. There are several bugs in this
tool and its maintainer has seemingly abandoned the project.

The DMG tool has the ability to create DMGs from scratch as well, but this functionality is
broken. Only the compression feature is currently used. Ideally, the creation could be fixed
and `genisoimage` would no longer be necessary.
and `xorrisofs` would no longer be necessary.

Background images and other features can be added to DMG files by inserting a
`.DS_Store` during creation.
Expand Down
26 changes: 0 additions & 26 deletions depends/packages/native_cdrkit.mk

This file was deleted.

2 changes: 1 addition & 1 deletion depends/packages/packages.mk
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@ darwin_native_packages = native_ds_store native_mac_alias
$(host_arch)_$(host_os)_native_packages += native_b2

ifneq ($(build_os),darwin)
darwin_native_packages += native_cctools native_cdrkit native_libdmg-hfsplus
darwin_native_packages += native_cctools native_libdmg-hfsplus
endif
3 changes: 2 additions & 1 deletion depends/packages/qt.mk
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ $(package)_dependencies=zlib
$(package)_linux_dependencies=freetype fontconfig libxcb
$(package)_build_subdir=qtbase
$(package)_qt_libs=corelib network widgets gui plugins testlib concurrent
$(package)_patches=fix_qt_pkgconfig.patch mac-qmake.conf fix_configure_mac.patch fix_no_printer.patch fix_rcc_determinism.patch fix_riscv64_arch.patch fix_s390x_powerpc_mips_mipsel_architectures.patch xkb-default.patch no-xlib.patch fix_qpainter_non_determinism.patch
$(package)_patches=fix_qt_pkgconfig.patch mac-qmake.conf fix_configure_mac.patch fix_no_printer.patch fix_rcc_determinism.patch fix_riscv64_arch.patch fix_s390x_powerpc_mips_mipsel_architectures.patch xkb-default.patch no-xlib.patch fix_qpainter_non_determinism.patch fix_gcc_11.patch

$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
$(package)_qttranslations_sha256_hash=b36da7d93c3ab6fca56b32053bb73bc619c8b192bb89b74e3bcde2705f1c2a14
Expand Down Expand Up @@ -185,6 +185,7 @@ define $(package)_preprocess_cmds
patch -p1 -i $($(package)_patch_dir)/fix_rcc_determinism.patch &&\
patch -p1 -i $($(package)_patch_dir)/xkb-default.patch &&\
patch -p1 -i $($(package)_patch_dir)/fix_qpainter_non_determinism.patch &&\
patch -p1 -i $($(package)_patch_dir)/fix_gcc_11.patch &&\
echo "!host_build: QMAKE_CFLAGS += $($(package)_cflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
echo "!host_build: QMAKE_CXXFLAGS += $($(package)_cxxflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
echo "!host_build: QMAKE_LFLAGS += $($(package)_ldflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
Expand Down
Loading
Loading