Add ncdns-nsis project

This commit is contained in:
JeremyRand 2019-05-02 17:46:03 +00:00 committed by Jeremy Rand
parent f284c9952e
commit 2ebed53d63
No known key found for this signature in database
GPG Key ID: FD7550C2EB800711
10 changed files with 133 additions and 0 deletions

BIN
keyring/isc.gpg Normal file

Binary file not shown.

BIN
keyring/nlnetlabs.gpg Normal file

Binary file not shown.

1
keyring/zlib.gpg Symbolic link
View File

@ -0,0 +1 @@
../tor-browser-build/keyring/zlib.gpg

53
projects/ncdns-nsis/build Normal file
View File

@ -0,0 +1,53 @@
#!/bin/bash
[% c("var/set_default_env") -%]
distdir=/var/tmp/dist/[% project %]
mkdir -p "$distdir"
# We need to install a recent version of python-pefile so that it works
# in a x86_64 container:
# https://github.com/TheTorProject/tor-messenger-build/pull/10
tar xf $rootdir/[% c('input_files_by_name/python-pefile') %]
cd $(echo [% c('input_files_by_name/python-pefile') %] | sed s/\.tar\.gz$//)
python setup.py install --user
cd ..
tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/nsis') %]
export PATH="/var/tmp/dist/nsis/bin:$PATH"
cd "$distdir"
tar -C . -xf $rootdir/[% project %]-[% c('version') %].tar.gz
mv ./ncdns-nsis-*/* ./
NSISFLAGS="-V2"
OUTFN=build/bin/ncdns-[% c("version") %]-[% c("arch") %]-install.exe
ARTIFACTS="$distdir/build/artifacts"
NEUTRAL_ARTIFACTS="$distdir/artifacts"
mkdir -p "${ARTIFACTS}"
mkdir -p /var/tmp/dist/plain-binaries
tar -C /var/tmp/dist/plain-binaries -xf $rootdir/[% c('input_files_by_name/plain-binaries') %]
cp /var/tmp/dist/plain-binaries/*.exe /var/tmp/dist/plain-binaries/*.dll ${ARTIFACTS}
mkdir /var/tmp/dist/bind
unzip -d /var/tmp/dist/bind $rootdir/[% c('input_files_by_name/bind') %]
cp /var/tmp/dist/bind/*.exe /var/tmp/dist/bind/*.dll ${ARTIFACTS}
cp $rootdir/[% c('input_files_by_name/dnssec-trigger') %] ${ARTIFACTS}
[% IF c("var/windows-x86_64") %]
cp $rootdir/[% c('input_files_by_name/namecoin-core') %] ${ARTIFACTS}
[% END %]
cp $rootdir/[% c('input_files_by_name/consensusj-namecoin') %] ${ARTIFACTS}/bitcoinj-daemon.jar
mkdir -p build/bin
makensis ${NSISFLAGS} -DPOSIX_BUILD=1 -DNCDNS_PRODVER=[% c('var/ncdns_nsis_version') %] [% c('var/arch_nsis_args') %] "-DARTIFACTS=$ARTIFACTS" "-DNEUTRAL_ARTIFACTS=$NEUTRAL_ARTIFACTS" "-DDNSSEC_TRIGGER_FN=[% c('input_files_by_name/dnssec-trigger') %]" "-DNAMECOIN_FN=[% c('input_files_by_name/namecoin-core') %]" "-DOUTFN=${OUTFN}" ncdns.nsi
# Working around NSIS braindamage
mv "${OUTFN}" torbrowser-install-tmp.exe
python $rootdir/pe_checksum_fix.py
mv torbrowser-install-tmp2.exe [% dest_dir _ '/' _ c('filename') %]

View File

@ -0,0 +1,56 @@
# vim: filetype=yaml sw=2
version: '[% pc("ncdns", "version") %]'
git_url: https://github.com/namecoin/ncdns-nsis.git
git_hash: 'f3f7c7a7a13897044e4499cd89d61bf9c2b1d07e'
filename: 'ncdns-[% c("version") %]-[% c("arch") %]-install-[% c("var/build_id") %].exe'
var:
bind_version: '9.15.7'
consensusj_namecoin_version: '0.3.2.1'
dnssec_trigger_version: '0.17'
namecoin_core_version: '0.21.0.1'
# Used for PE metadata.
# Must be a 4-tuple without leading 'v' for NSIS to be happy.
ncdns_nsis_version: '0.1.2.0'
container:
use_container: 1
deps:
- python
- python-future
- unzip
targets:
windows-x86_64:
var:
arch_nsis_args: '-DNCDNS_64BIT=1'
bind_arch: 'x64'
windows-i686:
var:
arch_nsis_args: '-DNO_NAMECOIN_CORE'
bind_arch: 'x86'
input_files:
- project: container-image
- project: plain-binaries
name: plain-binaries
- name: bind
URL: 'https://ftp.isc.org/isc/bind/[% c("var/bind_version") %]/BIND[% c("var/bind_version") %].[% c("var/bind_arch") %].zip'
file_gpg_id: 1
gpg_keyring: isc.gpg
- name: dnssec-trigger
URL: 'https://www.nlnetlabs.nl/downloads/dnssec-trigger/dnssec_trigger_setup_[% c("var/dnssec_trigger_version") %].exe'
file_gpg_id: 1
gpg_keyring: nlnetlabs.gpg
- name: namecoin-core
URL: 'https://www.namecoin.org/files/namecoin-core/namecoin-core-[% c("var/namecoin_core_version") %]/namecoin-nc[% c("var/namecoin_core_version") %]-win64-setup-unsigned.exe'
sha256sum: f82c070daa086c2243d641bb07a31d6dc272e191a7792860974d0cd1f0b97873
enable: '[% c("var/windows-x86_64") %]'
- name: consensusj-namecoin
URL: 'https://www.namecoin.org/files/ConsensusJ-Namecoin/[% c("var/consensusj_namecoin_version") %]/namecoinj-daemon-0.3.2-SNAPSHOT.jar'
sha256sum: 6b35d5a31eb74b4870c8a6c37dd53563aa63b64810fdedb5192f2a77396e190f
- project: nsis
name: nsis
- filename: pe_checksum_fix.py
- name: python-pefile
URL: https://files.pythonhosted.org/packages/7e/9b/f99171190f04cd23768547dd34533b4016bd582842f53cd9fe9585a74c74/pefile-2017.11.5.tar.gz
sha256sum: 675c35ee0e1677db9e80d2f48d8a7ff2cf38e6207e8cd5e2a2c6d126db025854

1
projects/nsis Symbolic link
View File

@ -0,0 +1 @@
../tor-browser-build/projects/nsis

View File

@ -18,9 +18,12 @@ mkdir -p "$destdir"
[% END -%]
[% IF c("var/ncdns-windows-i686") -%]
mv [% c('input_files_by_name/windows-i686') %] "$destdir"/
# NSIS disabled for i686 due to unavailability of BIND binaries.
#mv [% c('input_files_by_name/windows-i686-nsis') %] "$destdir"/
[% END -%]
[% IF c("var/ncdns-windows-x86_64") -%]
mv [% c('input_files_by_name/windows-x86_64') %] "$destdir"/
mv [% c('input_files_by_name/windows-x86_64-nsis') %] "$destdir"/
[% END -%]
[% IF c("var/ncdns-osx-x86_64") -%]
mv [% c('input_files_by_name/osx-x86_64') %] "$destdir"/

View File

@ -176,6 +176,22 @@ input_files:
- '[% c("var/build_target") %]'
- ncdns-windows-x86_64
# i686 is disabled for NSIS because BIND no longer distributes binaries. Once
# we replace BIND, maybe we can re-enable this.
#- name: windows-i686-nsis
# project: ncdns-nsis
# enable: '[% c("var/ncdns-windows-i686") %]'
# target:
# - '[% c("var/build_target") %]'
# - ncdns-windows-i686
- name: windows-x86_64-nsis
project: ncdns-nsis
enable: '[% c("var/ncdns-windows-x86_64") %]'
target:
- '[% c("var/build_target") %]'
- ncdns-windows-x86_64
- name: osx-x86_64
project: plain-binaries
enable: '[% c("var/ncdns-osx-x86_64") %]'

1
projects/zlib Symbolic link
View File

@ -0,0 +1 @@
../tor-browser-build/projects/zlib

View File

@ -20,3 +20,5 @@ else
git submodule update --init
make -C tor-browser-build submodule-update
fi
cp tor-browser-build/projects/tor-browser/pe_checksum_fix.py projects/ncdns-nsis/