Skip to content
Open

aaa #31

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1401 commits
Select commit Hold shift + click to select a range
255cffd
Add Chat screen
osamacis Dec 15, 2022
3fb6ada
Add Subscription and update test case of payment screen
osamacis Dec 1, 2022
8a1835e
Api fix `HandleDisseminatePreEncryptedMsg`
PeterSurda Nov 10, 2022
3d19c3f
Add transifex update translation file
shekhar-cis Jan 12, 2023
377fafc
Try to reenable EOL py27 and py36 in tox according to its FAQ
Sep 4, 2023
027a746
A basic recipe for appimage-builder - currently builds armhf one
Feb 22, 2023
1753c42
Add a buildbot multibuild dir for building an armhf appimage
Feb 22, 2023
4e20421
Parametrize appimage-builder recipe,
Mar 2, 2023
385e3bb
Add arm64 appimage build
Mar 2, 2023
d1ad273
Use git to determine version for the appimage
Mar 3, 2023
05253a5
Add a buildbot dir for jammy, running only py310 env
May 9, 2022
4752bd4
Edit INSTALL.md, - update binary links
Sep 14, 2023
8e46aec
Fix closing inbound connections if sendoutgoingconnections is False
Aug 6, 2023
190ce09
Add a dry run of appimage
Sep 18, 2023
7057bc0
Add a buildbot_multibuild dir for building windows executable
Sep 18, 2023
b84e677
Add a buildbot_multibuild dir for running tests on xenial;
May 11, 2022
2d5e140
Add skip_install in non-testing tox envs and py35
Sep 19, 2023
f2f776e
Check the return of buildscripts/winbuild.sh in winebuild task
Sep 21, 2023
1616732
Write sha256 checksums for binaries
Sep 24, 2023
7ca1858
Improve snap build script: check snapcraft exit status, write checksum
Sep 24, 2023
e4488ba
Move loading cryptors into objectProcessor init.
Dec 21, 2022
d03aa7c
Add a timeout for sql_ready waiting, exit from object processor if re…
Sep 21, 2023
9187e0c
Forgotten pylint comment for os._exit
Oct 20, 2023
492541c
Remove core tests from coverage
Sep 22, 2023
57c50ea
Copy qt.conf from the old appimage
Oct 30, 2023
47d6fb1
Use internal link to doc in docstring of isProofOfWorkSufficient()
Oct 15, 2022
7ccbfc4
Add a footnote about the format of the public key in the Encryption doc
Dec 24, 2022
4fef7cd
Update also the public key example in the Encryption doc
Dec 25, 2022
9145531
More about message types from Protocol_specification_v3
Jan 9, 2023
7c62936
Update the Specification link
Oct 3, 2023
427965c
Correct articles in the verack section of the Spec, emphasize must un…
Oct 3, 2023
1211860
Separate creating the Inventory instance from singleton
Nov 30, 2022
9e9cffa
Started a test case for inventory, so far using a filesystem backend
May 17, 2022
e1592a4
Use dotted imports in the storage package to run on python3
May 17, 2022
81f574c
MutableMapping finally moved to collections.abc in py310
Sep 20, 2022
8af1a13
Simplify storage abstract base definition
Sep 20, 2022
a629c15
Fix appending in storage.filesystem for python3
Sep 21, 2023
c34b827
Format storage.filesystem a bit
Sep 21, 2023
0f8fdb4
Remove MailboxStorage TODO
Nov 21, 2023
7f376b0
Move the contents of network.assemble to protocol
g1itch Nov 14, 2020
305d5d7
Add a test for protocol.assembleAddrMessage()
g1itch Aug 18, 2021
f6adb46
The command arg of protocol.CreatePacket() is of type bytes
g1itch Aug 19, 2021
b996704
Emphasize more magic imports in the network package
Jan 3, 2023
0c07bb6
Move all the network constants into the protocol, define also magic.
Jan 4, 2023
b66dfca
Cast time as int before assembling addr message
Jan 4, 2023
e8af620
Fix the test for proofofwork.LogOutput()
Sep 27, 2023
81e6de1
Started a standalone API test case
g1itch Dec 11, 2021
a16a0ce
Rewrite imports in api for python3 and cut out those looking too tricky
g1itch Dec 11, 2021
2c2a41d
Add an obvious test for the 'statusBar' command
g1itch Dec 11, 2021
1b7a642
Rewrite TestAPIThread as subclass of TestPartialRun
Jun 10, 2022
2501212
Fix py3 incompatibilities in api:
Jun 11, 2022
7c153c0
Mock network.stats for python3 in tests.partial
Dec 1, 2023
0cb8080
Resolve pylint warnings in partial and test_api_thread - mostly suppress
Dec 3, 2023
606b6d7
Explicitly enable UDP in TestNetwork adding Announcer to the expected…
Dec 20, 2023
c5ced60
Move most of the logic of TestCore.test_udp() into the TestNetwork
Dec 20, 2023
d427c27
Started a test case for address generator
g1itch Dec 6, 2021
799aadc
Rewrite TestAddressGenerator as a subclass of TestPartialRun,
Jul 4, 2022
9a96cab
Make sample_seed bytes as in crypto
Jul 4, 2022
6045b58
Config values are strings
Jul 4, 2022
d8e0c52
Resolve some pylint warnings in class_addressGenerator
Dec 20, 2023
c45f1ea
Test more deterministic commands, add timeouts in get from queue
Dec 27, 2023
f6538a3
Set NDK as recommended by buildozer, update also SDK tools versions
Jan 26, 2024
d564445
Upgrade to focal and openjdk-17-jdk-headless
Jan 27, 2024
43ad5f3
Rewritten the Dockerfile:
Jan 27, 2024
f88ffcc
Remove x86 arch
Jan 31, 2024
d3644aa
Add a test for short pubkey coordinates
Jan 7, 2024
6880943
Relax the assertion about privkey length
Jan 7, 2024
8e95279
Pad pubkey coordinates in pyelliptic.ECC.get_pubkey()
Jan 7, 2024
b3c5900
Code quality fixes
PeterSurda Feb 20, 2024
d545630
Code quality
PeterSurda Feb 22, 2024
b43c9c4
Code Quality
anand-skss Feb 23, 2024
c2e407e
Code Quality - included B101 in tox.ini to ignore assert warning
anand-skss Feb 24, 2024
e5e0f43
Code Quality
anand-skss Feb 26, 2024
696f9f9
Trying to fix readthedocs build
Feb 18, 2024
348df11
Truly wait for pow in test_send_broadcast() in test_api
Dec 31, 2023
c723ace
Add .dockerignore mainly to avoid the .buildozer dir in local containers
Feb 2, 2024
d08b07d
Update .gitignore by the stuff created by tox and buildozer
Feb 2, 2024
fde26f2
Slightly edit the build script - copy apk; check package files in tes…
Feb 16, 2024
a10170b
Include SQL scripts into the apk (fixes: #1949)
Feb 1, 2024
65ae17f
Change permissions for whole ANDROID_SDK_HOME to enable updates by bu…
Feb 21, 2024
7ed76d9
Add devcontainer setup
PeterSurda Feb 27, 2024
dd64a7b
Code Quality
anand-skss Feb 27, 2024
5af8b8d
included defusedxml package for parsestring & cleaned upnp schema
anand-skss Feb 27, 2024
b8e0995
Restrict m2r version for py27
Feb 27, 2024
c734ac7
Code Quality
anand-skss Feb 28, 2024
13e6116
Move sphinx_rtd_theme into the docs requirements
Feb 28, 2024
d33959d
Code Quality
anand-skss Feb 29, 2024
19ec364
Code quality
PeterSurda Mar 3, 2024
498b218
Update devcontainers
PeterSurda Feb 28, 2024
6a33fe5
Code Quality
anand-skss Mar 4, 2024
b211c79
Remove tox-xenial
PeterSurda Mar 6, 2024
698932f
Reduce number of globally disabled bandit checks
Mar 6, 2024
95659b6
Fix bandit comments:
Mar 6, 2024
d884379
Test cases for multiqueue
anand-skss Mar 8, 2024
7dc91af
Fix typo and formatting in tests.core
Mar 11, 2024
6d8c7f3
Renamed mock dir to mockpb
anand-skss Mar 20, 2024
2e98a1e
Test cases for helper_sql & Added mock library dependency in requirem…
anand-skss Mar 20, 2024
563e557
Test cases for helper_sent
anand-skss Mar 22, 2024
b8749c6
Rename mockpb dir to mockbm
anand-skss Mar 22, 2024
73ffd26
Kivy dependencies downgrade
PeterSurda Mar 28, 2024
a39fc2c
Test cases for helper_inbox.py
anand-skss Mar 29, 2024
9747f65
Define a protocol function for decoding object parameters outside of …
Oct 12, 2023
1794384
Use decodeObjectParameters() in disseminatePreEncryptedMsg API comman…
Oct 12, 2023
2030e08
A test for disseminatePreEncryptedMsg API command
Mar 18, 2024
8fb6410
Enable inventory item setting for python3
Mar 18, 2024
2a93b04
Fix api.HandleDisseminatePreEncryptedMsg() for python3
Mar 19, 2024
13d090e
Use protocol.decodeObjectParameters() for sending ACK - put it in the…
Oct 13, 2023
fd3567b
Add a test for sign() and verify()
g1itch Jul 27, 2021
799237c
Don't use BMConfigParser in highlevelcrypto, instead use digestAlg kw…
g1itch Jul 27, 2021
5a48ee0
Add tests for base58 and WIF decoding using pyelliptic.arithmetic
g1itch Jul 29, 2021
17a09a6
Moved samples into the samples module
Apr 5, 2024
c1ca704
Moved decodeWalletImportFormat() from shared to highlevelcrypto,
g1itch Aug 6, 2021
feaee60
Add a test for WIF decoding and encoding
g1itch Jul 29, 2021
c7a3bfa
Move randomBytes to highlevelcrypto
g1itch Dec 9, 2021
1b9773f
A dummy test for randomBytes
g1itch Dec 9, 2021
3ed84a5
Start adding hashes with double SHA512
g1itch Jul 29, 2021
7348568
The test for double SHA512
g1itch Jul 29, 2021
e1ae333
Properly format all the keys samples
Jan 1, 2023
44a4a37
Use defaults while doing PoW for a preencrypted msg
Jan 5, 2023
7836538
Make PoW optional in disseminatePreEncryptedMsg
Jan 5, 2023
f6bd154
Alias disseminatePreEncryptedMsg as disseminatePreparedObject, edit d…
Jan 8, 2023
629efb2
Update the test for disseminatePreEncryptedMsg API command
Apr 4, 2024
ae3ff8c
Fix outdated exception handlers for singleWorker._getKeysForAddress()
Apr 14, 2024
acab92c
Add a test for random address generation
Apr 14, 2024
d547a8b
Encode WIF string before passing to highlevelcrypto.decodeWalletImpor…
Apr 14, 2024
5c1dcc5
Define functions for generating keys in the highlevelcrypto
g1itch Dec 9, 2021
c51b287
Tests for keys generation
g1itch Dec 9, 2021
0ed5665
Use fallback.RIPEMD160Hash() in the test for deterministic keys
Apr 14, 2024
d555a79
Test cases for shared.py
anand-skss Mar 28, 2024
5faef8d
moved inventory in state - global runtime variable from singleton
anand-skss Apr 17, 2024
1c8ae8f
moved Dandelion in state - global runtime variable from singleton
anand-skss Apr 21, 2024
95af3a8
Renamed dandelion flag to dandelion_enabled
anand-skss Apr 22, 2024
06ed879
Downgrade devcontainer ubuntu
PeterSurda Apr 29, 2024
f28935f
Avoid recursion when trying to build bitmsghash lib
May 5, 2024
8fa9da4
Fix cross-compilation in the appimage build script and simplify local…
May 6, 2024
28355d7
Made BMConnectionPool as global runtime variable in connectionpool fr…
anand-skss May 9, 2024
8ef9c4d
Remove ancient travis configuration
May 9, 2024
de9ee28
Add a new tox env for linting, currently running pylint,
Apr 8, 2024
3b36676
Run the lint env in the jammy buildbot dir
Apr 8, 2024
657c1de
Remove state.shutdown or replaced with self._stopped from some networ…
anand-skss May 13, 2024
e571ba8
Replaced state.streamsInWhichIAmParticipating with pool.streams
anand-skss May 13, 2024
aaaac0f
Append commit abbreviation to the snap version for non-release builds
Mar 10, 2023
41fd17b
Try to avoid building the snaps from branches not having snap-related…
May 18, 2024
3a04e35
Move RIPEMD160 hash to highlevelcrypto and export to_ripe() (closes: …
May 30, 2022
a209d65
Moved dandelion runtime var from state to network->dandelion
anand-skss May 26, 2024
a71b44e
moved dandelion_enabled from state to Dandelion class as enabled attr
anand-skss May 29, 2024
21bef10
Improve the base class for bitmessageqt test cases
May 14, 2024
ec1b05e
Allow user to set a base Qt window style and the font (family and siz…
Apr 25, 2024
0ccbf68
Adjust the tabWidget font size relative to the base app font
May 2, 2024
d46af08
A rather rudimentary test with basic checks for the style setting
May 3, 2024
c3c4190
Use QtTest and QTimer.singleShot() to check the font dialog
May 7, 2024
de11bc4
Make Windows the default window style on windows, not GTK+
Jun 9, 2024
de445d6
Suppress pylint complaint
PeterSurda Jun 16, 2024
638b5a9
Add the alpha siffix for non-merge appimage builds
May 18, 2024
8280e05
Added some notes on the appimages into the install doc
May 19, 2024
a69e4ee
Update the windows exe URL
Jun 8, 2024
205e253
Use six to avoid obsolete unittest assertions
Jun 6, 2024
e578759
Reduced helper_randon dependency from network module
anand-skss Jun 13, 2024
2b3034a
Add lines for local testing into the buildbot docker files
May 27, 2024
b68beaa
Update and rename the script for testing with docker
Jun 2, 2024
65d2a37
Extend environment markers for PyQt5 - doesn't install on arm
Jun 2, 2024
27e5661
Add a check for default in TestProtocol.test_check_local()
Jul 2, 2024
6578b5b
Moved multiqueue to network module
anand-skss Jun 23, 2024
5cd4ecb
Moved invQueue to network module
anand-skss Jun 23, 2024
49e89ec
Moved addrQueue to network module
anand-skss Jun 23, 2024
5b537ea
Moved portCheckerQueue and receiveDataQueue to network module
anand-skss Jun 24, 2024
d6823a6
Fix python3 / kivy test
PeterSurda Jul 7, 2024
759c622
Android build fixes
PeterSurda Mar 29, 2024
cf37169
Use mock for android build
PeterSurda Mar 29, 2024
e6ece59
fix kivy build - restrict setuptools < 71
Jul 24, 2024
efaa63c
Added zbarcam deps
Jul 29, 2024
dc57f71
Additionally quote vars in appimage/build.sh
Aug 26, 2024
85c3720
Don't put compiled bitmsghash.so into the dockerfiles
Jul 31, 2024
4ad06d7
code-quality: Update code quality kivy/baseclass/allmail and related …
Aug 29, 2024
db69b98
Suppress pylinit super complaint
PeterSurda Oct 9, 2024
41ce3ef
code-quality: Update code quality kivy/baseclass/draft
Sep 9, 2024
3eec0da
code-quality: Update code quality kivy/baseclass/inbox
Sep 12, 2024
79ba94b
supress pylint super complaint
Oct 17, 2024
1ee3883
Suppress flake8 error
PeterSurda Oct 20, 2024
034bb19
Set focus policy for NetworkStatus.tableWidgetConnectionCount
Dec 15, 2024
866920e
Set black foreground for colored items in the Network Status connecti…
Dec 23, 2024
f497d7a
Remove palette property from the STableWidget
May 21, 2024
41f3774
Specify some new API commands for managing black/white list
Sep 2, 2024
bc5d46b
Add new API commands for managing black/white list (closes: #536)
Sep 2, 2024
d5f8d84
Initial efforts for testing the proofofwork:
g1itch Mar 17, 2021
120b044
Define a couple of functions in proofofwork for common calculations,
Jan 11, 2023
c6ae9f6
Use proofofwork.calculate() everywhere
Jan 16, 2023
3b6db99
Skip TestProofofwork based on BITMESSAGE_TEST_POW (set for py36 curre…
Jan 13, 2023
a84168f
Format proofofwork once again
Oct 1, 2023
822950e
Add tests for python PoW and a check for StopIteration in the calcula…
Oct 3, 2023
338c006
Inherit TestProofofworkBase from partial.TestPartialRun
Dec 6, 2023
73119af
Test singleWorker._doPOWDefaults(), make it a classmethod (closes: #1…
Dec 7, 2023
00d9afb
Suppress no-member pylint warning in test_proofofwork, fix typo from …
Jan 19, 2025
bb5f96c
Relax pylint design checker rules also for python2.7
Jan 21, 2025
b9d90a6
Devcontainer update
PeterSurda Feb 6, 2025
d0bc26e
Skip onion-only boostrap
PeterSurda Feb 6, 2025
9e4b117
Devcontainer compatibility fixes
PeterSurda Feb 7, 2025
4e07317
code-quality: Update code quality in addressbook
Aug 24, 2024
63a2765
Add abbreviated commit hashes to the names of snapshots for windows
Jun 9, 2024
e9757d0
Remove excessive pylint comments after bb5f96cc
Feb 14, 2025
d80bc37
Revert network.connectionpool - BMConnectionPool has 9 instance attri…
Feb 25, 2025
6f59331
Use six in essential files & lint fixes
Feb 6, 2025
0e199ab
General quality improvements and fixes
Jul 29, 2024
0be9bd2
Use six in common files - 2
Feb 1, 2025
12b6c56
Verify scheme and suppress B310
Mar 12, 2025
c2b2be9
Use six in common files - 1
Feb 1, 2025
6d0b3b7
Fixes camera crash
Aug 5, 2024
de2c668
updated kivy-requirements
Aug 6, 2024
742559a
Fix address scanning
Aug 7, 2024
061b9d5
minor refactor scanner screen
Aug 7, 2024
292e197
refactor
Feb 13, 2025
7e1cdef
Refactor
Mar 5, 2025
33b42bd
Specify xvfbwrapper version compatible with py27
Apr 15, 2025
98cf498
code-quality: Update code quality
Jan 3, 2025
e8c4620
fix lint
Apr 21, 2025
9c4186c
fix failing network status test
May 19, 2025
bff7804
code-quality: Update code quality kivy/baseclass/maildetail
Sep 20, 2024
ebc483e
Supress f-string flake8 error
Oct 22, 2024
3725063
refactor quality & lint fixes
Feb 13, 2025
cc29f77
refactor maildetail.py: replace magic numbers with constants
Feb 17, 2025
7bec40f
improve quality
Feb 27, 2025
63509c5
improve magic numbers
Feb 28, 2025
754f458
improve error msg
Mar 6, 2025
d0ac7b1
fix lints
May 19, 2025
8f15402
fix lint and import
May 20, 2025
cde765d
Add more checks for shared.reloadBroadcastSendersForWhichImWatching()
Mar 28, 2025
a18a6b7
Cleanup shared.reloadBroadcastSendersForWhichImWatching()
Mar 28, 2025
79268cb
Add a test for shared.reloadMyAddressHashes()
Apr 5, 2025
2cfbabe
Bandit exclusions
PeterSurda Jun 18, 2025
7c8a335
code-quality: Update code quality kivy/baseclass/myaddress_widgets
Oct 8, 2024
1c51c4a
kivy-test-fix: pos_hint in MailDetail kv
Jul 18, 2025
0066ead
fix failing kivy tests
Jul 18, 2025
15c4b41
Add a test for invalid commands:
Apr 22, 2024
ae4389f
Avoid attempts to execute an invalid command in address generator thread
Apr 22, 2024
cebcce1
Add checks for joinChan command
Apr 22, 2024
2ac1ba1
Define a method doing the essential work for saving an address
Apr 22, 2024
0934a93
Replace unhandled AddressGeneratorException by RuntimeError
Nov 13, 2024
d45c8f0
Suppress import-related pylint warnings for python3
Jan 30, 2025
e4a7272
Set pylint design checker rule for R0917 (positional arguments) also …
Jan 30, 2025
22696f7
Comply to pylint consider-using-max-builtin
Jan 31, 2025
44ad747
Handle pylint inconsistent-return-statements in test_addressgenerator
Jan 31, 2025
6944de7
Add difficulty params as arguments to addressGenerator.save_address()
Jun 10, 2025
43ad03c
Suppress no-member pylint warning in test_addressgenerator
Jul 15, 2025
12995f4
fix-android-build: Cython 3.1.x doesn't have `long`, pin to 3.0.10
Jul 22, 2025
4bb5afc
Set proper CMD in the Dockerfile for appimage building
Jul 24, 2025
346c678
Download the obsolete runtime in the appimage build script
Jul 25, 2025
feb03d9
Android version bump
PeterSurda Jul 29, 2025
b5a67be
Build appimages using an appimage-builder built from our custom code:
Jul 29, 2025
d56ba16
Fix incorrect link in upnp.py
smallzhong Sep 29, 2025
802b0b9
Port check workaround
PeterSurda Nov 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
105 changes: 105 additions & 0 deletions .buildbot/android/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# A container for buildbot

FROM ubuntu:focal AS android

ENV DEBIAN_FRONTEND=noninteractive
ENV ANDROID_HOME="/opt/android"

RUN apt-get update -qq > /dev/null \
&& apt-get -y install -qq --no-install-recommends locales \
&& locale-gen en_US.UTF-8
ENV LANG="en_US.UTF-8" \
LANGUAGE="en_US.UTF-8" \
LC_ALL="en_US.UTF-8"

# install system/build dependencies
RUN apt-get -y update -qq \
&& apt-get -y install -qq --no-install-recommends \
curl autoconf automake build-essential cmake git nano libtool \
libltdl-dev libffi-dev libssl-dev \
patch pkg-config python-is-python3 python3-dev python3-pip unzip zip

RUN apt-get -y install -qq --no-install-recommends openjdk-17-jdk \
&& apt-get -y autoremove

# pyzbar dependencies
RUN apt-get -y install -qq --no-install-recommends libzbar0 libtool gettext

RUN pip install buildozer cython==3.0.10 virtualenv


ENV ANDROID_NDK_HOME="${ANDROID_HOME}/android-ndk"
ENV ANDROID_NDK_VERSION="25b"
ENV ANDROID_NDK_HOME_V="${ANDROID_NDK_HOME}-r${ANDROID_NDK_VERSION}"

# get the latest version from https://developer.android.com/ndk/downloads/index.html
ENV ANDROID_NDK_ARCHIVE="android-ndk-r${ANDROID_NDK_VERSION}-linux.zip"
ENV ANDROID_NDK_DL_URL="https://dl.google.com/android/repository/${ANDROID_NDK_ARCHIVE}"
# download and install Android NDK
RUN curl "${ANDROID_NDK_DL_URL}" --output "${ANDROID_NDK_ARCHIVE}" \
&& mkdir -p "${ANDROID_NDK_HOME_V}" \
&& unzip -q "${ANDROID_NDK_ARCHIVE}" -d "${ANDROID_HOME}" \
&& ln -sfn "${ANDROID_NDK_HOME_V}" "${ANDROID_NDK_HOME}" \
&& rm -rf "${ANDROID_NDK_ARCHIVE}"

ENV ANDROID_SDK_HOME="${ANDROID_HOME}/android-sdk"

# get the latest version from https://developer.android.com/studio/index.html
ENV ANDROID_SDK_TOOLS_VERSION="11076708"
ENV ANDROID_SDK_BUILD_TOOLS_VERSION="34.0.0"
ENV ANDROID_SDK_CMDLINE_TOOLS_VERSION="12.0"
ENV ANDROID_SDK_TOOLS_ARCHIVE="commandlinetools-linux-${ANDROID_SDK_TOOLS_VERSION}_latest.zip"
ENV ANDROID_SDK_TOOLS_DL_URL="https://dl.google.com/android/repository/${ANDROID_SDK_TOOLS_ARCHIVE}"
ENV ANDROID_CMDLINE_TOOLS_DIR="${ANDROID_SDK_HOME}/cmdline-tools/${ANDROID_SDK_CMDLINE_TOOLS_VERSION}"
ENV ANDROID_SDK_MANAGER="${ANDROID_CMDLINE_TOOLS_DIR}/bin/sdkmanager --sdk_root=${ANDROID_SDK_HOME}"

# download and install Android SDK
RUN curl "${ANDROID_SDK_TOOLS_DL_URL}" --output "${ANDROID_SDK_TOOLS_ARCHIVE}" \
&& mkdir -p "${ANDROID_SDK_HOME}/cmdline-tools" \
&& unzip -q "${ANDROID_SDK_TOOLS_ARCHIVE}" \
-d "${ANDROID_SDK_HOME}/cmdline-tools" \
&& mv "${ANDROID_SDK_HOME}/cmdline-tools/cmdline-tools" \
${ANDROID_CMDLINE_TOOLS_DIR} \
&& ln -sfn ${ANDROID_CMDLINE_TOOLS_DIR} "${ANDROID_SDK_HOME}/tools" \
&& rm -rf "${ANDROID_SDK_TOOLS_ARCHIVE}"

# update Android SDK, install Android API, Build Tools...
RUN mkdir -p "${ANDROID_SDK_HOME}/.android/" \
&& echo '### User Sources for Android SDK Manager' \
> "${ANDROID_SDK_HOME}/.android/repositories.cfg"

# accept Android licenses (JDK necessary!)
RUN yes | ${ANDROID_SDK_MANAGER} --licenses > /dev/null

# download platforms, API, build tools
RUN ${ANDROID_SDK_MANAGER} "platforms;android-30" > /dev/null \
&& ${ANDROID_SDK_MANAGER} "platforms;android-28" > /dev/null \
&& ${ANDROID_SDK_MANAGER} "platform-tools" > /dev/null \
&& ${ANDROID_SDK_MANAGER} "build-tools;${ANDROID_SDK_BUILD_TOOLS_VERSION}" \
> /dev/null \
&& ${ANDROID_SDK_MANAGER} "extras;android;m2repository" > /dev/null \
&& chmod +x "${ANDROID_CMDLINE_TOOLS_DIR}/bin/avdmanager"

# download ANT
ENV APACHE_ANT_VERSION="1.9.4"
ENV APACHE_ANT_ARCHIVE="apache-ant-${APACHE_ANT_VERSION}-bin.tar.gz"
ENV APACHE_ANT_DL_URL="https://archive.apache.org/dist/ant/binaries/${APACHE_ANT_ARCHIVE}"
ENV APACHE_ANT_HOME="${ANDROID_HOME}/apache-ant"
ENV APACHE_ANT_HOME_V="${APACHE_ANT_HOME}-${APACHE_ANT_VERSION}"

RUN curl "${APACHE_ANT_DL_URL}" --output "${APACHE_ANT_ARCHIVE}" \
&& tar -xf "${APACHE_ANT_ARCHIVE}" -C "${ANDROID_HOME}" \
&& ln -sfn "${APACHE_ANT_HOME_V}" "${APACHE_ANT_HOME}" \
&& rm -rf "${APACHE_ANT_ARCHIVE}"


RUN useradd -m -U builder && mkdir /android

WORKDIR /android

RUN chown -R builder.builder /android "${ANDROID_SDK_HOME}" \
&& chmod -R go+w "${ANDROID_SDK_HOME}"

USER builder

ADD . .
32 changes: 32 additions & 0 deletions .buildbot/android/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/bin/bash
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

# buildozer OOM workaround
mkdir -p ~/.gradle
echo "org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" \
> ~/.gradle/gradle.properties

# workaround for symlink
rm -rf src/pybitmessage
mkdir -p src/pybitmessage
cp src/*.py src/pybitmessage
cp -r src/bitmessagekivy src/backend src/mockbm src/images src/pybitmessage

pushd packages/android

BUILDMODE=debug

if [ "$BUILDBOT_JOBNAME" = "android" -a \
"$BUILDBOT_REPOSITORY" = "https://github.com/Bitmessage/PyBitmessage" -a \
"$BUILDBOT_BRANCH" = "v0.6" ]; then
sed -e 's/android.release_artifact *=.*/release_artifact = aab/' -i "" buildozer.spec
BUILDMODE=release
fi

buildozer android $BUILDMODE || exit $?
popd

mkdir -p ../out
RELEASE_ARTIFACT=$(grep release_artifact packages/android/buildozer.spec |cut -d= -f2|tr -Cd 'a-z')
cp packages/android/bin/*.${RELEASE_ARTIFACT} ../out
12 changes: 12 additions & 0 deletions .buildbot/android/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash

RELEASE_ARTIFACT=$(grep release_artifact packages/android/buildozer.spec |cut -d= -f2|tr -Cd 'a-z')

if [ $RELEASE_ARTIFACT = "aab" ]; then
exit
fi

unzip -p packages/android/bin/*.apk assets/private.tar \
| tar --list -z > package.list
cat package.list
cat package.list | grep '\.sql$' || exit 1
28 changes: 28 additions & 0 deletions .buildbot/appimage/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
FROM ubuntu:bionic

RUN apt-get update

RUN apt-get install -yq --no-install-suggests --no-install-recommends \
ca-certificates software-properties-common \
build-essential libcap-dev libssl-dev \
python-all-dev python-setuptools wget \
git gtk-update-icon-cache \
binutils-multiarch crossbuild-essential-armhf crossbuild-essential-arm64

RUN dpkg --add-architecture armhf
RUN dpkg --add-architecture arm64

RUN sed -iE "s|deb |deb [arch=amd64] |g" /etc/apt/sources.list \
&& echo "deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports/ bionic main universe" >> /etc/apt/sources.list \
&& echo "deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main universe" >> /etc/apt/sources.list

RUN apt-get update | true

RUN apt-get install -yq libssl-dev:armhf libssl-dev:arm64

RUN wget -qO appimage-builder-x86_64.AppImage \
https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.1.0/appimage-builder-1.1.0-x86_64.AppImage

ADD . .

CMD .buildbot/appimage/build.sh
62 changes: 62 additions & 0 deletions .buildbot/appimage/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/bin/bash

export APPIMAGE_EXTRACT_AND_RUN=1
BUILDER=appimage-builder-x86_64.AppImage
RECIPE=packages/AppImage/AppImageBuilder.yml

git remote add -f upstream https://github.com/Bitmessage/PyBitmessage.git
HEAD="$(git rev-parse HEAD)"
UPSTREAM="$(git merge-base --fork-point upstream/v0.6)"
export APP_VERSION=$(git describe --tags | cut -d- -f1,3 | tr -d v)
[ "$HEAD" != "$UPSTREAM" ] && APP_VERSION="${APP_VERSION}-alpha"

function set_sourceline {
if [ ${ARCH} == amd64 ]; then
export SOURCELINE="deb http://archive.ubuntu.com/ubuntu/ bionic main universe"
else
export SOURCELINE="deb [arch=${ARCH}] http://ports.ubuntu.com/ubuntu-ports/ bionic main universe"
fi
}

function build_appimage {
set_sourceline
./${BUILDER} --recipe ${RECIPE} || exit 1
rm -rf build
}

[ -f ${BUILDER} ] || wget -qO ${BUILDER} \
"https://artifacts.bitmessage.at/appimage/38930/appimage-builder-0.1.dev1035%2Bgce669f6-x86_64.AppImage" \
&& chmod +x ${BUILDER}

chmod 1777 /tmp

export ARCH=amd64
export APPIMAGE_ARCH=x86_64
export RUNTIME=${APPIMAGE_ARCH}

build_appimage

export ARCH=armhf
export APPIMAGE_ARCH=${ARCH}
export RUNTIME=gnueabihf
export CC=arm-linux-gnueabihf-gcc
export CXX=${CC}

build_appimage

export ARCH=arm64
export APPIMAGE_ARCH=aarch64
export RUNTIME=${APPIMAGE_ARCH}
export CC=aarch64-linux-gnu-gcc
export CXX=${CC}

build_appimage

EXISTING_OWNER=$(stat -c %u ../out) || mkdir -p ../out

sha256sum PyBitmessage*.AppImage >> ../out/SHA256SUMS
cp PyBitmessage*.AppImage ../out

if [ ${EXISTING_OWNER} ]; then
chown ${EXISTING_OWNER} ../out/PyBitmessage*.AppImage ../out/SHA256SUMS
fi
6 changes: 6 additions & 0 deletions .buildbot/appimage/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/bash

export APPIMAGE_EXTRACT_AND_RUN=1

chmod +x PyBitmessage-*-x86_64.AppImage
./PyBitmessage-*-x86_64.AppImage -t
18 changes: 18 additions & 0 deletions .buildbot/kivy/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# A container for buildbot
FROM ubuntu:focal AS kivy

ENV DEBIAN_FRONTEND=noninteractive

ENV SKIPCACHE=2022-08-29

RUN apt-get update

RUN apt-get install -yq \
build-essential libcap-dev libssl-dev \
libmtdev-dev libpq-dev \
python3-dev python3-pip python3-virtualenv \
xvfb ffmpeg xclip xsel

RUN ln -sf /usr/bin/python3 /usr/bin/python

RUN pip3 install --upgrade 'setuptools<71' pip
7 changes: 7 additions & 0 deletions .buildbot/kivy/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/sh

pip3 install -r kivy-requirements.txt

export INSTALL_TESTS=True

pip3 install .
4 changes: 4 additions & 0 deletions .buildbot/kivy/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash
export INSTALL_TESTS=True

xvfb-run --server-args="-screen 0, 720x1280x24" python3 tests-kivy.py
7 changes: 7 additions & 0 deletions .buildbot/snap/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM ubuntu:bionic

ENV SKIPCACHE=2022-07-17

RUN apt-get update

RUN apt-get install -yq --no-install-suggests --no-install-recommends snapcraft
16 changes: 16 additions & 0 deletions .buildbot/snap/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash

git remote add -f upstream https://github.com/Bitmessage/PyBitmessage.git
HEAD="$(git rev-parse HEAD)"
UPSTREAM="$(git merge-base --fork-point upstream/v0.6)"
SNAP_DIFF="$(git diff upstream/v0.6 -- packages/snap .buildbot/snap)"

[ -z "${SNAP_DIFF}" ] && [ $HEAD != $UPSTREAM ] && exit 0

pushd packages && snapcraft || exit 1

popd
mkdir -p ../out
mv packages/pybitmessage*.snap ../out
cd ../out
sha256sum pybitmessage*.snap > SHA256SUMS
26 changes: 26 additions & 0 deletions .buildbot/tox-bionic/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
FROM ubuntu:bionic

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update

RUN apt-get install -yq --no-install-suggests --no-install-recommends \
software-properties-common build-essential libcap-dev libffi-dev \
libssl-dev python-all-dev python-setuptools \
python3-dev python3-pip python3.8 python3.8-dev python3.8-venv \
python-msgpack python-qt4 language-pack-en qt5dxcb-plugin tor xvfb

RUN apt-get install -yq sudo

RUN echo 'builder ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

RUN python3.8 -m pip install setuptools wheel
RUN python3.8 -m pip install --upgrade pip tox virtualenv

ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

ADD . .

CMD .buildbot/tox-bionic/test.sh
3 changes: 3 additions & 0 deletions .buildbot/tox-bionic/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh

sudo service tor start
4 changes: 4 additions & 0 deletions .buildbot/tox-bionic/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/sh

tox -e lint-basic || exit 1
tox
17 changes: 17 additions & 0 deletions .buildbot/tox-focal/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM ubuntu:focal

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update

RUN apt-get install -yq --no-install-suggests --no-install-recommends \
software-properties-common build-essential libcap-dev libffi-dev \
libssl-dev python-all-dev python-setuptools \
python3-dev python3-pip python3.9 python3.9-dev python3.9-venv \
language-pack-en qt5dxcb-plugin tor xvfb

RUN python3.9 -m pip install --upgrade pip tox virtualenv

ADD . .

CMD .buildbot/tox-focal/test.sh
1 change: 1 addition & 0 deletions .buildbot/tox-focal/test.sh
16 changes: 16 additions & 0 deletions .buildbot/tox-jammy/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
FROM ubuntu:jammy

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update

RUN apt-get install -yq --no-install-suggests --no-install-recommends \
software-properties-common build-essential libcap-dev libffi-dev \
libssl-dev python-all-dev python-is-python3 python-setuptools \
python3-dev python3-pip language-pack-en qt5dxcb-plugin tor xvfb

RUN pip install tox

ADD . .

CMD .buildbot/tox-jammy/test.sh
4 changes: 4 additions & 0 deletions .buildbot/tox-jammy/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/sh

tox -e lint || exit 1
tox -e py310
Loading