Merge pull request #9 from fuwa0529/dev

update to wow 0.8
master v0.8.0.0
jw 4 years ago committed by GitHub
commit d62434b2a9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -50,32 +50,17 @@ run-release:
cd cyberwow && \ cd cyberwow && \
flutter run --release --pid-file /tmp/flutter.pid flutter run --release --pid-file /tmp/flutter.pid
# clang -target aarch64-linux-android21 cyberwow/native/hello.c -o cyberwow/native/output/hello build:
c:
clang -target x86_64-linux-android21 cyberwow/native/hello.c -o cyberwow/native/output/x86_64/wownerod
build-c: c
cd cyberwow && \ cd cyberwow && \
flutter clean flutter build apk --target-platform android-arm64
push:
adb push cyberwow/native/output/hello /data/local/tmp
test-android:
adb shell /data/local/tmp/hello
test-c: c push test-android
collect: build-bundle:
cp ../vendor/wownero/bin/wownerod cyberwow/native/output/arm64/
build:
cd cyberwow && \ cd cyberwow && \
flutter build apk --target-platform android-arm64 -v flutter build appbundle --target-platform android-arm64
build-debug: build-debug:
cd cyberwow && \ cd cyberwow && \
flutter build apk --debug --target-platform android-arm64 flutter build appbundle --debug --target-platform android-arm64
install: build install: build
cd cyberwow && \ cd cyberwow && \
@ -87,8 +72,6 @@ script := etc/scripts/build-external-libs
wow: clean-external-libs collect-wownero build wow: clean-external-libs collect-wownero build
wow-no-native: build
clean-external-libs: clean-external-libs:
$(script)/clean.sh $(script)/clean.sh
@ -103,11 +86,7 @@ boost: iconv
$(script)/boost/fetch.sh $(script)/boost/fetch.sh
$(script)/boost/build.sh $(script)/boost/build.sh
zlib: toolchain openssl: toolchain
$(script)/zlib/fetch.sh
$(script)/zlib/build.sh
openssl: zlib
$(script)/openssl/fetch.sh $(script)/openssl/fetch.sh
$(script)/openssl/build.sh $(script)/openssl/build.sh

@ -7,57 +7,12 @@ A dumb android pruned full node for Wownero.
height="80">](https://f-droid.org/en/packages/org.wownero.cyberwow/) height="80">](https://f-droid.org/en/packages/org.wownero.cyberwow/)
<a href='https://play.google.com/store/apps/details?id=org.wownero.cyberwow'><img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png' height='80'/></a> <a href='https://play.google.com/store/apps/details?id=org.wownero.cyberwow'><img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png' height='80'/></a>
## How to build
### Compile wownerod for android-arm64
#### Simple method with Docker
```
pushd .
git clone https://github.com/wownero/wownero
cd wownero
git submodule init && git submodule update
docker build -f utils/build_scripts/android64.Dockerfile -t wownero-android .
# Create container
docker create -it --name wownero-android wownero-android bash
# Get binaries
docker cp wownero-android:/src/build/release/bin .
```
The binary needed is `./bin/wownerod`.
#### Alternative methods
1. One docker instance per hash
See `etc/scripts/docker-build-wownero.sh`, modify the value of `version` per build.
2. Debian based system similar to F-droid ## How to build
See the `wow` task in `Makefile`.
### Install flutter and make sure it's in path
### Compile CyberWOW
```
popd
git clone https://github.com/wownero/cyberwow/
cd cyberwow
mkdir -p cyberwow/android/app/src/main/jniLibs/arm64-v8a
# Copy wownerod that we just built
cp $PATH_TO_WOWNEROD \
cyberwow/android/app/src/main/jniLibs/arm64-v8a/libwownerod.so
make build
```
The resulting apk is `cyberwow/build/app/outputs/apk/release/app-release.apk`. An example build script that works on an F-droid build server, which is based on debian stable, is here:
<https://gitlab.com/fdroid/fdroiddata/-/raw/master/metadata/org.wownero.cyberwow.yml>
## How to use custom start up arguments ## How to use custom start up arguments

@ -41,8 +41,8 @@ android {
applicationId "org.wownero.cyberwow" applicationId "org.wownero.cyberwow"
minSdkVersion 26 minSdkVersion 26
targetSdkVersion 29 targetSdkVersion 29
versionCode 25 versionCode 26
versionName "0.7.0.0-l" versionName "0.8.0.0"
} }
if(project.hasProperty("RELEASE_STORE_FILE")) { if(project.hasProperty("RELEASE_STORE_FILE")) {

@ -34,6 +34,7 @@ final _theme = ThemeData
accentColor: crtGreen, accentColor: crtGreen,
cursorColor: crtGreen, cursorColor: crtGreen,
backgroundColor: Colors.black,
scaffoldBackgroundColor: Colors.black, scaffoldBackgroundColor: Colors.black,
textTheme: TextTheme textTheme: TextTheme

@ -7,42 +7,42 @@ packages:
name: archive name: archive
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.11" version: "2.0.13"
args: args:
dependency: transitive dependency: transitive
description: description:
name: args name: args
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.5.2" version: "1.6.0"
async: async:
dependency: transitive dependency: transitive
description: description:
name: async name: async
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.4.0" version: "2.4.1"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.5" version: "2.0.0"
charcode: charcode:
dependency: transitive dependency: transitive
description: description:
name: charcode name: charcode
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.2" version: "1.1.3"
collection: collection:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.14.11" version: "1.14.12"
convert: convert:
dependency: transitive dependency: transitive
description: description:
@ -56,7 +56,7 @@ packages:
name: crypto name: crypto
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.3" version: "2.1.4"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@ -78,7 +78,7 @@ packages:
name: http name: http
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.12.0+4" version: "0.12.1"
http_parser: http_parser:
dependency: transitive dependency: transitive
description: description:
@ -92,7 +92,7 @@ packages:
name: image name: image
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.4" version: "2.1.12"
intl: intl:
dependency: "direct main" dependency: "direct main"
description: description:
@ -134,21 +134,21 @@ packages:
name: path_provider name: path_provider
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.6.5" version: "1.6.8"
path_provider_macos: path_provider_macos:
dependency: transitive dependency: transitive
description: description:
name: path_provider_macos name: path_provider_macos
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.0.4" version: "0.0.4+2"
path_provider_platform_interface: path_provider_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: path_provider_platform_interface name: path_provider_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.1" version: "1.0.2"
pedantic: pedantic:
dependency: transitive dependency: transitive
description: description:
@ -183,35 +183,35 @@ packages:
name: quiver name: quiver
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.5" version: "2.1.3"
shared_preferences: shared_preferences:
dependency: "direct main" dependency: "direct main"
description: description:
name: shared_preferences name: shared_preferences
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.5.6+3" version: "0.5.7+2"
shared_preferences_macos: shared_preferences_macos:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_macos name: shared_preferences_macos
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.0.1+6" version: "0.0.1+8"
shared_preferences_platform_interface: shared_preferences_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_platform_interface name: shared_preferences_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.3" version: "1.0.4"
shared_preferences_web: shared_preferences_web:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_web name: shared_preferences_web
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.1.2+4" version: "0.1.2+5"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
@ -223,7 +223,7 @@ packages:
name: source_span name: source_span
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.5.5" version: "1.7.0"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
@ -279,7 +279,7 @@ packages:
name: xml name: xml
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.5.0" version: "3.6.1"
sdks: sdks:
dart: ">=2.5.0 <3.0.0" dart: ">=2.6.0 <3.0.0"
flutter: ">=1.12.13+hotfix.4 <2.0.0" flutter: ">=1.12.13+hotfix.5 <2.0.0"

@ -1,7 +1,7 @@
name: cyberwow name: cyberwow
description: A new Flutter project. description: A new Flutter project.
version: 0.7.0+25 version: 0.8.0+0
environment: environment:
sdk: ">=2.1.0 <3.0.0" sdk: ">=2.1.0 <3.0.0"

@ -18,12 +18,10 @@ let
pyasn1 pyasn1
pyasn1-modules pyasn1-modules
python-vagrant python-vagrant
libvirt
pyyaml pyyaml
qrcode qrcode
requests requests
ruamel_yaml ruamel_yaml
libvirt
] ]
; python-with-fdroid-packages = pkgs.python3.withPackages fdroid-python-packages ; python-with-fdroid-packages = pkgs.python3.withPackages fdroid-python-packages

@ -1,3 +1,31 @@
# Copyright (c) 2019-2020, The Wownero Project
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors may be
# used to endorse or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
let let
nixpkgs = import <nixpkgs> {} nixpkgs = import <nixpkgs> {}
@ -33,12 +61,111 @@ let
xkeyboard_config xkeyboard_config
] ]
; ndk-r17c = (nixpkgs.androidenv.composeAndroidPackages
{
ndkVersion = "17.2.4988734"
; }).ndk-bundle
; ndk-r21b =
let
version = "r21b"
; in
nixpkgs.fetchzip
{
url = "https://dl.google.com/android/repository/android-ndk-${version}-linux-x86_64.zip"
; sha256 = "0shz45b6f2k4lnca8fgghh4cdh53vghfn26cj4mkirkk4cpv1qry"
; }
; openssl-source =
let
name = "openssl"
; version = "1.1.1g"
; in
nixpkgs.fetchurl
{
url = "https://www.openssl.org/source/${name}-${version}.tar.gz"
; sha256 = "0ikdcc038i7jk8h7asq5xcn8b1xc2rrbc88yfm4hqbz3y5s4gc6x"
; }
; iconv-source =
let
name = "libiconv"
; version = "1.16"
; in
nixpkgs.fetchurl
{
url = "http://ftp.gnu.org/pub/gnu/${name}/${name}-${version}.tar.gz"
; sha256 = "016c57srqr0bza5fxjxfrx6aqxkqy0s3gkhcg7p7fhk5i6sv38g6"
; }
; boost-source =
let
name = "boost"
; version = "1_71_0"
; dot_version = "1.71.0"
; in
nixpkgs.fetchurl
{
url =
"https://dl.bintray.com/boostorg/release/{dot_version}/source/${name}_${version}.tar.bz2"
; sha256 = "1vi40mcair6xgm9k8rsavyhcia3ia28q8k0blknwgy4b3sh8sfnp"
; }
; sodium-source =
let
name = "libsodium"
; version = "1.0.18"
; in
nixpkgs.fetchurl
{
url = "https://github.com/jedisct1/${name}/archive/${version}.tar.gz"
; sha256 = "1x6lll81z4ah732zwpw481qfbzg7yml0nwdgbnd5388jnz3274ym"
; }
; randomwow-source =
let
name = "RandomWOW"
; version = "1.1.6"
; in
nixpkgs.fetchurl
{
url = "https://github.com/wownero/${name}/archive/${version}.tar.gz"
; sha256 = "1c55y2dwrayh6k1avpchs89gq1mvy5c305h92jm2k48kzhw6a792"
; }
; wownero-source =
nixpkgs.fetchFromGitHub
{
owner = "wownero"
; repo = "wownero"
; rev = "dev-v0.8"
; sha256 = "13032pa9wx3h6x860f9iy28vdpkc94wzby153ig7hw4dixjqhs6w"
; }
; miniupnp-source =
nixpkgs.fetchFromGitHub
{
owner = "miniupnp"
; repo = "miniupnp"
; rev = "7800de9"
; sha256 = "1f7jgll8lxz2l5lifgqafgx8694x0svgwyz8w8w4cwavm9lmah63"
; }
; unbound-source =
nixpkgs.fetchFromGitHub
{
owner = "monero-project"
; repo = "unbound"
; rev = "9a77c29"
; sha256 = "0dmm5pz2yf1lfand9k1c8x0mbrwynkpphh877b8jbavjrwiwsw35"
; }
; in ; in
with nixpkgs; with nixpkgs;
(buildFHSUserEnv { (buildFHSUserEnv {
name = "cyberwow-build-env" name = "cyberwow-env"
; targetPkgs = pkgs: (with pkgs; ; targetPkgs = pkgs: (with pkgs;
[ [
bash bash
@ -58,7 +185,7 @@ with nixpkgs;
gnumake gnumake
gcc gcc
entr entr
androidenv.androidPkgs_9_0.platform-tools # androidenv.androidPkgs_9_0.platform-tools
zlib zlib
@ -70,6 +197,7 @@ with nixpkgs;
gnum4 gnum4
pkgconfig pkgconfig
cmake cmake
ccache
] ]
++ android-studio-deps ++ android-studio-deps
) )
@ -82,15 +210,25 @@ with nixpkgs;
; profile = '' ; profile = ''
export ANDROID_HOME=~/SDK/Android/Sdk export ANDROID_HOME=~/SDK/Android/Sdk
PATH=~/local/sdk/flutter/beta/bin:$PATH PATH=~/local/sdk/flutter/stable/bin:$PATH
PATH=~/SDK/Android/android-studio/bin:$PATH PATH=~/SDK/Android/android-studio/bin:$PATH
PATH=~/SDK/Android/Sdk/tools/bin:$PATH PATH=~/SDK/Android/Sdk/tools/bin:$PATH
export ANDROID_NDK_VERSION=r20b export ANDROID_NDK_VERSION=r21b
export ANDROID_NDK_ROOT=~/SDK/Android/ndk-archive/android-ndk-$ANDROID_NDK_VERSION export ANDROID_NDK_ROOT=${ndk-r21b}
export NDK=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64 export NDK=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64
PATH=$NDK/bin:$PATH PATH=$NDK/bin:$PATH
export SRC_OPENSSL=${openssl-source}
export SRC_ICONV=${iconv-source}
export SRC_BOOST=${boost-source}
export SRC_SODIUM=${sodium-source}
export SRC_RANDOMWOW=${randomwow-source}
export SRC_MINIUPNP_DIR=${miniupnp-source}
export SRC_UNBOUND_DIR=${unbound-source}
export SRC_RAPIDJSON_DIR=${nixpkgs.rapidjson.src}
export SRC_WOWNERO_DIR=${wownero-source}
export PATH_NCURSES=${nixpkgs.ncurses5} export PATH_NCURSES=${nixpkgs.ncurses5}
export PATH export PATH
@ -98,7 +236,7 @@ with nixpkgs;
export DART_VM_OPTIONS=--root-certs-file=/etc/ssl/certs/ca-certificates.crt export DART_VM_OPTIONS=--root-certs-file=/etc/ssl/certs/ca-certificates.crt
export ANDROID_NDK_VERSION_WOW=r17c export ANDROID_NDK_VERSION_WOW=r17c
export ANDROID_NDK_ROOT_WOW=~/SDK/Android/ndk-archive/android-ndk-$ANDROID_NDK_VERSION_WOW export ANDROID_NDK_ROOT_WOW=${ndk-r17c}/libexec/android-sdk/ndk-bundle
export ZSH_INIT=${nixpkgs.oh-my-zsh}/share/oh-my-zsh/oh-my-zsh.sh export ZSH_INIT=${nixpkgs.oh-my-zsh}/share/oh-my-zsh/oh-my-zsh.sh
exec zsh exec zsh

@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project # Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project # Copyright (c) 2014-2019, The Monero Project
@ -66,33 +66,42 @@ for arch in ${archs[@]}; do
echo "building for ${arch}" echo "building for ${arch}"
( (
PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH \ PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH
CC=clang \ if [ -x "$(command -v ccache)" ]; then
CXX=clang++; \ echo "////////////////////////////////////////////"
./b2 \ echo "// CCACHE 1 //"
cxxstd=14 \ echo "////////////////////////////////////////////"
toolset=clang \ CC="ccache clang"
threading=multi \ CXX="ccache clang++"
threadapi=pthread \ else
link=static \ CC=clang
runtime-link=static \ CXX=clang++
target-os=android \ fi
--ignore-site-config \
--prefix=${PREFIX} \ ./b2 \
--build-dir=android \ cxxstd=14 \
-sICONV_PATH=${ICONV_PATH} \ toolset=clang \
--build-type=minimal \ threading=multi \
--with-chrono \ threadapi=pthread \
--with-date_time \ link=static \
--with-filesystem \ runtime-link=static \
--with-program_options \ target-os=android \
--with-regex \ --ignore-site-config \
--with-serialization \ --prefix=${PREFIX} \
--with-system \ --build-dir=android \
--with-thread \ -sICONV_PATH=${ICONV_PATH} \
--with-locale \ --build-type=minimal \
install \ --with-chrono \
-j${NPROC} \ --with-date_time \
--with-filesystem \
--with-program_options \
--with-regex \
--with-serialization \
--with-system \
--with-thread \
--with-locale \
install \
-j${NPROC} \
) )
done done

@ -39,12 +39,18 @@ name=boost
version=1_71_0 version=1_71_0
dot_version=1.71.0 dot_version=1.71.0
hash=d73a8da01e8bf8c7eda40b4c84915071a8c8a0df4a6734537ddde4a8580524ee hash=d73a8da01e8bf8c7eda40b4c84915071a8c8a0df4a6734537ddde4a8580524ee
url=https://dl.bintray.com/boostorg/release/${dot_version}/source/${name}_${version}.tar.bz2
out=${name}_${version}.tar.bz2
rm -rf ${name}_${version} rm -rf ${name}_${version}
curl -# -L -O \ if [ ! -z $SRC_BOOST ]; then
https://dl.bintray.com/boostorg/release/${dot_version}/source/${name}_${version}.tar.bz2 echo "using pre-fetched $name"
cp $SRC_BOOST $out
else
curl -# -L -o $out -O $url
fi
echo "${hash} ${name}_${version}.tar.bz2" | sha256sum -c echo "$hash $out" | sha256sum -c
tar xfv ${name}_${version}.tar.bz2 tar xfv $out

@ -35,7 +35,6 @@ source etc/scripts/build-external-libs/env.sh
build_root=$BUILD_PATH build_root=$BUILD_PATH
chmod u+w -R $build_root
rm -rf $build_root rm -rf $build_root
mkdir -p $build_root mkdir -p $build_root
rm -rf cyberwow/native/output

@ -1,45 +0,0 @@
#!/bin/bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors may be
# used to endorse or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
set -e
source etc/scripts/build-external-libs/env.sh
src_root=$BUILD_ROOT_SRC
target_root=`pwd`
mkdir -p $target_root/cyberwow/native/output/arm64
touch $target_root/cyberwow/native/output/arm64/wownerod
mkdir -p $target_root/cyberwow/native/output/x86_64
touch $target_root/cyberwow/native/output/x86_64/wownerod
exit 0

@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project # Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project # Copyright (c) 2014-2019, The Monero Project
@ -34,6 +34,7 @@ set -e
source etc/scripts/build-external-libs/env.sh source etc/scripts/build-external-libs/env.sh
src_root=$BUILD_ROOT_SRC src_root=$BUILD_ROOT_SRC
build_root=$BUILD_ROOT
target_root=`pwd` target_root=`pwd`
name=wownero name=wownero
@ -62,7 +63,7 @@ for arch in ${archs[@]}; do
echo "collecting for ${arch}" echo "collecting for ${arch}"
mkdir -p $target_root/cyberwow/android/app/src/main/jniLibs/$target_abi mkdir -p $target_root/cyberwow/android/app/src/main/jniLibs/$target_abi
cp build/release/bin/wownerod \ cp build/release/bin/wownerod \
$target_root/cyberwow/android/app/src/main/jniLibs/$target_abi/libwownerod.so $target_root/cyberwow/android/app/src/main/jniLibs/$target_abi/libwownerod.so
done done

@ -1,3 +1,5 @@
#!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project # Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project # Copyright (c) 2014-2019, The Monero Project
# #

@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project # Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project # Copyright (c) 2014-2019, The Monero Project
@ -61,15 +61,24 @@ for arch in ${archs[@]}; do
echo "building for ${arch}" echo "building for ${arch}"
( (
PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH \ PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH
CC=clang \ if [ -x "$(command -v ccache)" ]; then
CXX=clang++; \ echo "////////////////////////////////////////////"
./configure \ echo "// CCACHE 1 //"
--prefix=${PREFIX} \ echo "////////////////////////////////////////////"
--build=x86_64-linux-gnu \ CC="ccache clang"
--host=${target_host} \ CXX="ccache clang++"
--disable-rpath \ else
&& make -j${NPROC} && make install && make clean \ CC=clang
CXX=clang++
fi
./configure \
--prefix=${PREFIX} \
--build=x86_64-linux-gnu \
--host=${target_host} \
--disable-rpath \
&& make -j${NPROC} && make install && make clean \
) )
done done

@ -35,15 +35,21 @@ source etc/scripts/build-external-libs/env.sh
cd $BUILD_ROOT_SRC cd $BUILD_ROOT_SRC
name=libiconv
version=1.16 version=1.16
hash=e6a1b1b589654277ee790cce3734f07876ac4ccfaecbee8afa0b649cf529cc04 hash=e6a1b1b589654277ee790cce3734f07876ac4ccfaecbee8afa0b649cf529cc04
name=libiconv url=http://ftp.gnu.org/pub/gnu/${name}/${name}-${version}.tar.gz
out=${name}-${version}.tar.gz
rm -rf ${name}-${version} rm -rf ${name}-${version}
curl -# -L -O \
http://ftp.gnu.org/pub/gnu/${name}/${name}-${version}.tar.gz
echo "${hash} ${name}-${version}.tar.gz" | sha256sum -c if [ ! -z $SRC_ICONV ]; then
echo "using pre-fetched $name"
cp $SRC_ICONV $out
else
curl -# -L -o $out -O $url
fi
tar -xzf ${name}-${version}.tar.gz echo "$hash $out" | sha256sum -c
tar -xzf $out

@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project # Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project # Copyright (c) 2014-2019, The Monero Project
@ -37,7 +37,7 @@ build_root=$BUILD_ROOT
src_root=$BUILD_ROOT_SRC src_root=$BUILD_ROOT_SRC
name=openssl name=openssl
version=1.1.1f version=1.1.1g
cd $src_root/${name}-${version} cd $src_root/${name}-${version}
@ -64,19 +64,30 @@ for arch in ${archs[@]}; do
echo "building for ${arch}" echo "building for ${arch}"
( (
export CC=clang ANDROID_API=29
export CXX=clang++
export ANDROID_API=23
export PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
export ANDROID_NDK_HOME=$ANDROID_NDK_ROOT export ANDROID_NDK_HOME=$ANDROID_NDK_ROOT
PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
if [ -x "$(command -v ccache)" ]; then
echo "////////////////////////////////////////////"
echo "// CCACHE 1 //"
echo "////////////////////////////////////////////"
CC="ccache clang"
CXX="ccache clang++"
else
CC=clang
CXX=clang++
fi
./Configure android-${arch} \ ./Configure android-${arch} \
--prefix=${PREFIX} \ --prefix=${PREFIX} \
no-comp \
-D__ANDROID_API__=$ANDROID_API \ -D__ANDROID_API__=$ANDROID_API \
--with-zlib-include=${ZLIB_PATH}/include \ && make -j${NPROC} SHLIB_VERSION_NUMBER= SHLIB_EXT=.so \
--with-zlib-lib=${ZLIB_PATH}/lib \ && make install_sw SHLIB_VERSION_NUMBER= SHLIB_EXT=.so \
&& make -j${NPROC} && make install && make clean \ && make clean \
) )
done done

@ -36,14 +36,20 @@ source etc/scripts/build-external-libs/env.sh
cd $BUILD_ROOT_SRC cd $BUILD_ROOT_SRC
name=openssl name=openssl
version=1.1.1f version=1.1.1g
hash=186c6bfe6ecfba7a5b48c47f8a1673d0f3b0e5ba2e25602dd23b629975da3f35 hash=ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46
url=https://www.openssl.org/source/openssl-${version}.tar.gz
out=openssl-${version}.tar.gz
rm -rf ${name}-${version} rm -rf ${name}-${version}
curl -# -L -O \ if [ ! -z $SRC_OPENSSL ]; then
https://www.openssl.org/source/openssl-${version}.tar.gz echo "using pre-fetched $name"
cp $SRC_OPENSSL $out
else
curl -# -L -o $out -O $url
fi
echo "${hash} ${name}-${version}.tar.gz" | sha256sum -c echo "${hash} $out" | sha256sum -c
tar xzf ${name}-${version}.tar.gz tar xzf $out

@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project # Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project # Copyright (c) 2014-2019, The Monero Project
@ -63,16 +63,24 @@ for arch in ${archs[@]}; do
echo "building for ${arch}" echo "building for ${arch}"
( (
PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH \ PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH
CC=clang \ if [ -x "$(command -v ccache)" ]; then
CXX=clang++; \ echo "////////////////////////////////////////////"
echo "// CCACHE 1 //"
echo "////////////////////////////////////////////"
CC="ccache clang"
CXX="ccache clang++"
else
CC=clang
CXX=clang++
fi
./configure \ ./configure \
--prefix=${PREFIX} \ --prefix=${PREFIX} \
--host=${target_host} \ --host=${target_host} \
--enable-static \ --enable-static \
--disable-shared \ --disable-shared \
&& make -j${NPROC} && make install && make clean \ && make -j${NPROC} && make install && make clean \
) )
done done

@ -38,12 +38,18 @@ cd $BUILD_ROOT_SRC
name=libsodium name=libsodium
version=1.0.18 version=1.0.18
hash=d59323c6b712a1519a5daf710b68f5e7fde57040845ffec53850911f10a5d4f4 hash=d59323c6b712a1519a5daf710b68f5e7fde57040845ffec53850911f10a5d4f4
url=https://github.com/jedisct1/libsodium/archive/${version}.tar.gz
out=${name}-${version}.tar.gz
rm -rf ${name}-${version} rm -rf ${name}-${version}
curl -# -L -o ${name}-${version}.tar.gz \ if [ ! -z $SRC_SODIUM ]; then
https://github.com/jedisct1/libsodium/archive/${version}.tar.gz echo "using pre-fetched $name"
cp $SRC_SODIUM $out
else
curl -# -L -o $out -O $url
fi
echo "${hash} ${name}-${version}.tar.gz" | sha256sum -c echo "${hash} $out" | sha256sum -c
tar xzf ${name}-${version}.tar.gz tar xzf $out

@ -36,7 +36,7 @@ source etc/scripts/build-external-libs/env.sh
build_root=$BUILD_ROOT build_root=$BUILD_ROOT
PATH=$ANDROID_NDK_ROOT/build/tools/:$PATH PATH=$ANDROID_NDK_ROOT/build/tools/:$PATH
args="--api 23 --stl=libc++" args="--api 29 --stl=libc++"
archs=(arm64) archs=(arm64)
for arch in ${archs[@]}; do for arch in ${archs[@]}; do

@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project # Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project # Copyright (c) 2014-2019, The Monero Project
@ -72,13 +72,30 @@ for arch in ${archs[@]}; do
export TOOLCHAIN_DIR=`realpath $build_root_wow/tool/${arch}` export TOOLCHAIN_DIR=`realpath $build_root_wow/tool/${arch}`
export PATH=$PATH:$build_root/host/bin export PATH=$PATH:$build_root/host/bin
mkdir -p build/release
pushd .
cd build/release
( (
CMAKE_INCLUDE_PATH="${PREFIX}/include" \ CMAKE_INCLUDE_PATH="${PREFIX}/include" \
CMAKE_LIBRARY_PATH="${PREFIX}/lib" \ CMAKE_LIBRARY_PATH="${PREFIX}/lib" \
ANDROID_STANDALONE_TOOLCHAIN_PATH=${TOOLCHAIN_DIR} \ CC=aarch64-linux-android-clang \
USE_SINGLE_BUILDDIR=1 \ CXX=aarch64-linux-android-clang++ \
make release-static-android-armv8 -j${NPROC} \ cmake \
-D BUILD_TESTS=OFF \
-D ARCH="armv8-a" \
-D STATIC=ON \
-D BUILD_64=ON \
-D CMAKE_BUILD_TYPE=release \
-D ANDROID=true \
-D INSTALL_VENDORED_LIBUNBOUND=ON \
-D BUILD_TAG="android-armv8" \
-D CMAKE_SYSTEM_NAME="Android" \
-D CMAKE_ANDROID_STANDALONE_TOOLCHAIN="${TOOLCHAIN_DIR}" \
-D CMAKE_ANDROID_ARCH_ABI="arm64-v8a" \
-D MANUAL_SUBMODULES=ON \
../.. && make -j${NPROC} daemon
) )
popd
done done

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project # Copyright (c) 2019-2020, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project # Copyright (c) 2014-2019, The Monero Project
# #
# All rights reserved. # All rights reserved.
@ -36,14 +36,51 @@ source etc/scripts/build-external-libs/env.sh
cd $BUILD_ROOT_SRC cd $BUILD_ROOT_SRC
name=wownero name=wownero
version=v0.7.0 version=v0.8.0.0
githash=4c6c7ab87b2a56165f400f6e49f17b9577a2bcad # version=dev-v0.8
githash=1271a7e3a97c0d81816b401627aefb6c6697d0b3
out=wownero
rm -rf $name chmod u+w -f -R $out || true
git clone --depth 1 https://github.com/wownero/wownero.git -b $version rm -rf $out
cd $name if [ ! -z $SRC_WOWNERO_DIR ]; then
test `git rev-parse HEAD` = $githash || exit 1 echo "using pre-fetched $name"
rsync -av --no-perms --no-owner --no-group --delete $SRC_WOWNERO_DIR/* $out
chmod u+w -R $out/external
cd $name
else
git clone --depth 1 https://github.com/wownero/wownero.git -b $version
cd $name
test `git rev-parse HEAD` = $githash || exit 1
fi
git submodule init && git submodule update
if [ ! -z $SRC_MINIUPNP_DIR ]; then
echo "using pre-fetched miniupnpc"
rsync -av --no-perms --no-owner --no-group --delete $SRC_MINIUPNP_DIR/* external/miniupnp
else
git submodule update --init external/miniupnp
fi
if [ ! -z $SRC_RAPIDJSON_DIR ]; then
echo "using pre-fetched rapidjson"
rsync -av --no-perms --no-owner --no-group --delete $SRC_RAPIDJSON_DIR/* external/rapidjson
else
git submodule update --init external/rapidjson
fi
if [ ! -z $SRC_RANDOMWOW ]; then
echo "using pre-fetched RandomWOW"
tar xzf $SRC_RANDOMWOW -C external/RandomWOW --strip-components=1
else
git submodule update --init external/RandomWOW
fi
if [ ! -z $SRC_UNBOUND_DIR ]; then
echo "using pre-fetched unbound"
rsync -av --no-perms --no-owner --no-group --delete $SRC_UNBOUND_DIR/* external/unbound
else
git submodule update --init external/unbound
fi

@ -1,76 +0,0 @@
#!/bin/bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors may be
# used to endorse or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
set -e
source etc/scripts/build-external-libs/env.sh
build_root=$BUILD_ROOT
src_root=$BUILD_ROOT_SRC
name=zlib
version=1.2.11
cd $src_root/${name}-${version}
archs=(arm64)
for arch in ${archs[@]}; do
extra_cmake_flags=""
case ${arch} in
"arm64")
target_host=aarch64-linux-android
;;
"x86_64")
target_host=x86_64-linux-android
;;
*)
exit 16
;;
esac
# PREFIX=$build_root/build/${name}/$arch
PREFIX=$build_root/build/$arch
echo "building for ${arch}"
export CC=clang
export CXX=clang++
(
PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH; \
./configure \
--prefix=${PREFIX} \
--static \
&& make -j${NPROC} && make install && make clean \
)
done
exit 0

@ -1,49 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors may be
# used to endorse or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
set -e
source etc/scripts/build-external-libs/env.sh
cd $BUILD_ROOT_SRC
name=zlib
version=1.2.11
hash=c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1
rm -rf ${name}-${version}
curl -# -L -O \
https://zlib.net/${name}-${version}.tar.gz
echo "${hash} ${name}-${version}.tar.gz" | sha256sum -c
tar xzf ${name}-${version}.tar.gz

@ -1,49 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors may be
# used to endorse or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
set -e
version="aba46a"
container="wownero-android-${version}"
echo "Building: ${container}"
echo
cd ../vendor/wownero
git fetch --all
git checkout $version
git submodule init && git submodule update
docker build -f utils/build_scripts/android64.Dockerfile -t $container .
docker create -it --name $container $container bash
docker cp ${container}:/src/build/release/bin .

@ -0,0 +1,2 @@
* Support custom start up args
* Upgrade to AndroidX

@ -0,0 +1,2 @@
* Use flutter beta
* Make connection checking more conservative by requiring at least one active peer

@ -0,0 +1,2 @@
* Fix openssl checksum
* Optimize UI for large tx pool

@ -0,0 +1 @@
* Base on Wownero v0.8 Hallucenogenic Hypnotoad
Loading…
Cancel
Save