Compare commits

...

2 Commits

Author SHA1 Message Date
0133f40a13
Add androiddev.sh 2021-02-10 17:04:19 +01:00
5fc3f59728
Add files 2021-02-10 17:03:11 +01:00
3 changed files with 382 additions and 0 deletions

166
androiddev.sh Normal file
View File

@ -0,0 +1,166 @@
#!/bin/bash
ANDROID_HOME="/opt/android"
get_python_version=$@
#INSTALL ANDROID PACKAGES
function install_android_pkg ()
{
if [[ "$get_python_version" -eq " 2 " ]];
then
BUILDOZER_VERSION=0.39
CYTHON_VERSION=0.28.6
elif [[ "$get_python_version" -eq " 3 " ]];
then
BUILDOZER_VERSION=1.0
CYTHON_VERSION=0.29.15
else
exit
fi
pip3 install buildozer==$BUILDOZER_VERSION
pip3 install --upgrade cython==$CYTHON_VERSION
}
# SYSTEM DEPENDENCIES
function system_dependencies ()
{
if [[ "$get_python_version" -eq " 2 " ]];
then
apt -y update -qq
apt -y install -qq --no-install-recommends python virtualenv python-pip python-setuptools python-wheel git wget unzip lbzip2 patch sudo software-properties-common
elif [[ "$get_python_version" -eq " 3 " ]];
then
apt -y update -qq
apt -y install --no-install-recommends python3-pip pip3 python3 virtualenv python3-setuptools python3-wheel git wget unzip sudo patch bzip2 lzma
else
exit
fi
apt -y autoremove
}
# build dependencies
# https://buildozer.readthedocs.io/en/latest/installation.html#android-on-ubuntu-16-04-64bit
function build_dependencies ()
{
dpkg --add-architecture i386
apt -y update -qq
if [[ "$get_python_version" -eq " 2 " ]];
then
apt -y install -qq --no-install-recommends build-essential ccache git python python-dev libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 zip zlib1g-dev zlib1g:i386
elif [[ "$get_python_version" -eq " 3 " ]];
then
apt -y install -qq --no-install-recommends build-essential ccache git python3 python3-dev libncurses5:i386 libstdc++6:i386 libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 zip zlib1g-dev zlib1g:i386
else
exit
fi
apt -y autoremove
apt -y clean
}
# RECIPES DEPENDENCIES
function specific_recipes_dependencies ()
{
apt -y update -qq
apt -y install -qq --no-install-recommends libffi-dev autoconf automake cmake gettext libltdl-dev libtool pkg-config
apt -y autoremove
apt -y clean
}
# INSTALL NDK
function install_ndk()
{
if [[ "$get_python_version" -eq " 2 " ]];
then
ANDROID_NDK_VERSION="17c"
elif [[ "$get_python_version" -eq " 3 " ]];
then
ANDROID_NDK_VERSION=21
else
# echo "-----"
exit
fi
ANDROID_NDK_HOME="${ANDROID_HOME}/android-ndk"
ANDROID_NDK_HOME_V="${ANDROID_NDK_HOME}-r${ANDROID_NDK_VERSION}"
# get the latest version from https://developer.android.com/ndk/downloads/index.html
ANDROID_NDK_ARCHIVE="android-ndk-r${ANDROID_NDK_VERSION}-linux-x86_64.zip"
ANDROID_NDK_DL_URL="https://dl.google.com/android/repository/${ANDROID_NDK_ARCHIVE}"
echo "Downloading ndk.........................................................................."
wget -nc ${ANDROID_NDK_DL_URL}
mkdir --parents "${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}"
}
# INSTALL SDK
function install_sdk()
{
if [[ "$get_python_version" -eq " 2 " ]];
then
ANDROID_SDK_BUILD_TOOLS_VERSION="28.0.3"
elif [[ "$get_python_version" -eq " 3 " ]];
then
ANDROID_SDK_BUILD_TOOLS_VERSION="29.0.2"
else
exit
fi
ANDROID_SDK_HOME="${ANDROID_HOME}/android-sdk"
# get the latest version from https://developer.android.com/studio/index.html
ANDROID_SDK_TOOLS_VERSION="4333796"
ANDROID_SDK_TOOLS_ARCHIVE="sdk-tools-linux-${ANDROID_SDK_TOOLS_VERSION}.zip"
ANDROID_SDK_TOOLS_DL_URL="https://dl.google.com/android/repository/${ANDROID_SDK_TOOLS_ARCHIVE}"
echo "Downloading sdk.........................................................................."
wget -nc ${ANDROID_SDK_TOOLS_DL_URL}
mkdir --parents "${ANDROID_SDK_HOME}"
unzip -q "${ANDROID_SDK_TOOLS_ARCHIVE}" -d "${ANDROID_SDK_HOME}"
rm -rf "${ANDROID_SDK_TOOLS_ARCHIVE}"
# update Android SDK, install Android API, Build Tools...
mkdir --parents "${ANDROID_SDK_HOME}/.android/"
echo '### Sources for Android SDK Manager' > "${ANDROID_SDK_HOME}/.android/repositories.cfg"
# accept Android licenses (JDK necessary!)
apt -y update -qq
apt -y install -qq --no-install-recommends openjdk-8-jdk
apt -y autoremove
yes | "${ANDROID_SDK_HOME}/tools/bin/sdkmanager" "build-tools;${ANDROID_SDK_BUILD_TOOLS_VERSION}" > /dev/null
# download platforms, API, build tools
"${ANDROID_SDK_HOME}/tools/bin/sdkmanager" "platforms;android-24" > /dev/null
"${ANDROID_SDK_HOME}/tools/bin/sdkmanager" "platforms;android-28" > /dev/null
"${ANDROID_SDK_HOME}/tools/bin/sdkmanager" "build-tools;${ANDROID_SDK_BUILD_TOOLS_VERSION}" > /dev/null
"${ANDROID_SDK_HOME}/tools/bin/sdkmanager" "extras;android;m2repository" > /dev/null
find /opt/android/android-sdk -type f -perm /0111 -print0|xargs -0 chmod a+x
chown -R buildbot.buildbot /opt/android/android-sdk
chmod +x "${ANDROID_SDK_HOME}/tools/bin/avdmanager"
}
# INSTALL APACHE-ANT
function install_ant()
{
if [[ "$get_python_version" -eq " 2 " ]];
then
APACHE_ANT_VERSION="1.9.4"
elif [[ "$get_python_version" -eq " 3 " ]];
then
APACHE_ANT_VERSION="1.10.7"
else
exit
fi
APACHE_ANT_ARCHIVE="apache-ant-${APACHE_ANT_VERSION}-bin.tar.gz"
APACHE_ANT_DL_URL="http://archive.apache.org/dist/ant/binaries/${APACHE_ANT_ARCHIVE}"
APACHE_ANT_HOME="${ANDROID_HOME}/apache-ant"
APACHE_ANT_HOME_V="${APACHE_ANT_HOME}-${APACHE_ANT_VERSION}"
echo "Downloading ant.........................................................................."
wget -nc ${APACHE_ANT_DL_URL}
tar -xf "${APACHE_ANT_ARCHIVE}" -C "${ANDROID_HOME}"
ln -sfn "${APACHE_ANT_HOME_V}" "${APACHE_ANT_HOME}"
rm -rf "${APACHE_ANT_ARCHIVE}"
}
system_dependencies
build_dependencies
specific_recipes_dependencies
install_android_pkg
install_ndk
install_sdk
install_ant

39
buildbot-osx.sh Normal file
View File

@ -0,0 +1,39 @@
#!/bin/bash
#unset PYTHONPATH
#export CURL_CA_BUNDLE=/usr/local/share/ca-certificates/bitmessage-proxy.crt
#echo "--cacert /usr/local/share/ca-certificates/bitmessage-proxy.crt" > ~/.curlrc
#brew install https://storage.bitmessage.org/python@2--2.7.17_1.high_sierra.bottle.1.tar.gz
#cp /usr/local/share/ca-certificates/bitmessage-proxy.crt /usr/local/etc/openssl/certs/bitmessage-proxy.pem && /usr/local/opt/openssl@1.0/bin/c_rehash
#/usr/local/opt/python@2/bin/python -m pip config set global.cert /usr/local/share/ca-certificates/bitmessage-proxy.crt
/usr/local/opt/python@2/bin/python -m pip install py2app
#brew tap cartr/qt4
#brew install qt@4
#brew install pyqt@4
export LDFLAGS="-L/usr/local/opt/openssl@1.0/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.0/include"
#/usr/local/opt/python@2/bin/python -m pip install sip
export ARCHFLAGS="-arch i386 -arch x86_64"
#buildscripts/osx.sh test
#curl -O https://www.riverbankcomputing.com/static/Downloads/sip/4.19.24/sip-4.19.24.tar.gz
#hg clone https://www.riverbankcomputing.com/hg/sip
#cd sip
#hg archive -r 4.19.24 -t tgz ../sip-4.9.24.tar.gz
curl -O https://storage.bitmessage.org/sip-4.19.24.tar.gz
tar xzvf sip-4.19.24.tar.gz
cd sip-4.19.24
/usr/local/opt/python@2/bin/python configure.py
make && make install
cd ..
make -C src/bitmsghash
mv src/bitmsghash/a.out src/bitmsghash/bitmsghash.so
cd src && /usr/local/opt/python@2/bin/python build_osx.py py2app
if [ $? -ne 0 ] ; then
exit 1
fi
hdiutil create -fs HFS+ -volname "Bitmessage" -srcfolder dist/Bitmessage.app dist/bitmessage-test.dmg

177
cloud-init/maas/user-data Normal file
View File

@ -0,0 +1,177 @@
## template: jinja
#cloud-config
# ordering
#cloud_final_modules:
# packages
package_update: true
package_upgrade: false
packages:
- libvirt-daemon-system
- linux-modules-{{sys_info.release}}
- linux-modules-extra-{{sys_info.release}}
- nfs-common
- ovmf
- cachefilesd
- cloud-image-utils
- networkd-dispatcher
- autosuspend
- virtinst
- lm-sensors
- docker.io
- hfsprogs
- ntfs-3g-dev
- dosfstools
# root
disable_root: false
ssh_deletekeys: true
ssh_pwauth: false
ssh_authorized_keys:
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVrfim4EMF7FzAnQF51frpsPgN\
JxfkzvBEC80wgwwP0AzD2iFPS57a6sXbie+sX7ALX89gmRwFtrKOwGYRYoQfU6dA\
hPirbpKY4BcTQx8N31fazceVJL0Y1kqSngNjYMbo1q0L5dgLBtPoVGcnriFAVGLg\
1+p9FIJTDK4rbwnYyDJyjruSAfnqVaWmqlMNAZNhqxOikBOh5M+3qPj0wmSKOE1r\
oE4HmQKUl62UjDWTkLLNx5u75QywQz+r8S0QNkSu/0iaeUdgkv3p0SsU4X5dmwuZ\
dbySMWkqy0zUCky2+qDqxzN6wHgnePZcedSobsIpxwDK0IrHpbaaBzVNn1uh shu\
rdeek@nitrokey1"
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1ADz4g7BkLoq9CEffl7jxp4Ms\
Brtv12rYpskUMV2HKH48Uwue/yjqvwxaRk4Nd0TG2fQisqsB3GYLRe+6R00zbn2k\
A5k49gQEt6EnVVlsTWSp6iutCi8CEOSxFew/r//NOJbKQPWN2yCh8TQowks+lM/z\
wlFhzfoqDjgMCU13IW/O9RphnMACnx1o/EvUeoozcCMbAzJOq4I/YOSJwavuTUUC\
lnD4tyPs1HyYVcw+4Bti1QERkE+tbbgXUAy7WvxXpEflfenHHIAnjqUCW3LUJ6wT\
roq55FQ1RT7WE+XddL5OI+o4vbQVG8cbYXwCk6/m+P051v9PfnyecI6qj8wd shu\
rdeek@yubikey1"
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Pebz7cNpL/Hikzfwzdnujcd1\
BWw4D4e1OXQaoCGcq2/gL+Wym8InL5qZ5hOgaF8lRVX5ys7m75uOyg8LOIRu0A27\
TzWzf9brV8TF5rsIhHYSK0CAA81G5NqOQgP3b7SANcs3PEWtxz+OeqFo7dcsQZij\
czRNunM73CBsTFZQCmNE2ZBh2QaQ1d/1lmYTqGlJ8DJrqeXXVc3S1Jln2nZ49XQM\
qdG49KvU66Xhd8kaukucDBl8iNLWpQ+N9Ao1SOnNlJVpLi6XUy9Hx3X3wVbrLQaH\
slIG6+AeZGpO/l3gKrQM3fjM2H+w9ow1rWcMdHgjxWZUryE7K1vzbpm4vNIf shu\
rdeek@brusli"
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoNYZ1L/rR44/sUb6fzTXb99Cr\
P+B9j01DRin5RT8Y59oD9R9TvsQcLztpXzvl4JQJfvjGou3ywVAuXTf8ksf/VHWn\
fGtZ3X1nWvuAeERwTFIIl8gR9xwTVjXDsLp3Feiqw6wHKdMI3BqI3oJ/Wn6gBxWg\
nm5UZbZMdWlAEAH1ucdxTOZ/+3aTC/hGb0N6ujp7MExTSUAs5xeSKHpocTdkD2Ra\
jC2Y+mbug0yt92XCHZX39zsQcxFd4NokTa2iJNO0bAYWXlXDPWRLuUfOrWWfuLn+\
OPH71pj+ysb6jrwFk+1sGV9h1GuxZne1+i42CGKoKomJaCMLE7kvMF6Solu/ shu\
rdeek@whisper"
users:
- name: pool
shell: /bin/bash
ssh-authorized-keys:
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Pebz7cNpL/Hikzfwzdnujcd1\
BWw4D4e1OXQaoCGcq2/gL+Wym8InL5qZ5hOgaF8lRVX5ys7m75uOyg8LOIRu0A27\
TzWzf9brV8TF5rsIhHYSK0CAA81G5NqOQgP3b7SANcs3PEWtxz+OeqFo7dcsQZij\
czRNunM73CBsTFZQCmNE2ZBh2QaQ1d/1lmYTqGlJ8DJrqeXXVc3S1Jln2nZ49XQM\
qdG49KvU66Xhd8kaukucDBl8iNLWpQ+N9Ao1SOnNlJVpLi6XUy9Hx3X3wVbrLQaH\
slIG6+AeZGpO/l3gKrQM3fjM2H+w9ow1rWcMdHgjxWZUryE7K1vzbpm4vNIf shu\
rdeek@brusli"
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFqJU6yabcgGi6lYSusxdpKo\
gw6XR320kDCenRfxuJkH buildbot@dumb.bitmessage.at"
# system settings
timezone: Europe/Vienna
hostname: {{v1.instance_id}}
fqdn: {{v1.instance_id}}.homedevops
# disk settings
disk_setup:
/dev/nvme0n1:
table_type: gpt
layout: true
overwrite: false
fs_setup:
- label: cache
device: /dev/nvme0n1
filesystem: ext4
partition: 1
overwrite: false
# change defaults
write_files:
- path: /etc/default/cachefilesd
content: |
RUN="yes"
- path: /etc/networkd-dispatcher/routable.d/50-wakeonlan
permissions: '0750'
owner: root:root
content: |
#!/bin/bash
/sbin/ethtool -s "$IFACE" wol g
- path: /etc/systemd/system/docker.service.d/tcp.conf
owner: root:root
content: |
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 --containerd=/run/containerd/containerd.sock
- path: /etc/autosuspend.conf
content: |
[general]
interval = 30
idle_time = 1800
suspend_cmd = /bin/systemctl {{ds.meta_data.suspend_cmd}}
wakeup_cmd = sh -c 'echo 0 > /sys/class/rtc/rtc0/wakealarm && echo {timestamp:.0f} >/sys/class/rtc/rtc0/wakealarm'
woke_up_file = /var/run/autosuspend-just-woke-up
lock_file = /var/lock/autosuspend.lock
lock_timeout = 30
[check.RemoteUsers]
class = Users
enabled = true
name = root
terminal = .*
host = [0-9].*
[check.Processes]
enabled = true
processes = qemu-img,qemu-system-x86_64,qemu-system-i386,qemu-system-x86_64-spice,containerd-shim
[check.Load]
enabled = true
threshold = 2.5
# mount
mounts:
- [ LABEL=cache, /var/cache/disk, auto, "discard,user_xattr" ]
- [ /var/cache/disk/ephemeral, /var/lib/libvirt/ephemeral, none, "bind" ]
- [ /var/cache/disk/docker, /var/lib/docker, none, "bind" ]
- [ /var/cache/disk/fscache, /var/cache/fscache, none, "bind" ]
- [ "files:/srv/nfs4/images", /var/lib/libvirt/backingstore, "nfs4",
"ro,rsize=131072,wsize=131072,fsc,hard,intr,proto=tcp,sync,nofail" ]
# early
bootcmd:
- [ mkdir, -p, /var/cache/disk,
/var/lib/libvirt/backingstore,
/var/lib/libvirt/ephemeral,
/var/cache/fscache,
/var/lib/docker ]
# post boot
runcmd:
- [ systemctl, stop, sshd ]
- [ mkdir, -p, /var/cache/disk/ephemeral, /var/cache/disk/docker,
/var/cache/disk/fscache ]
- [ iptables, -N, dockerapi ]
- [ iptables, -A, dockerapi, -s, 192.168.42.20, -j, ACCEPT ]
- [ iptables, -A, dockerapi, -j, DROP ]
- [ iptables, -I, INPUT, -p, tcp, '--dport', 2375, -j, dockerapi ]
- [ apt, -y, upgrade ]
- [ sed, -i, 's/.*MaxSessions.*/MaxSessions 200/g', /etc/ssh/sshd_config ]
- [ usermod, -aG, 'docker,libvirt', pool ]
- [ mount, -a ]
- [ wget, 'https://storage.bitmessage.org/qemu.hook', -O,
/etc/libvirt/hooks/qemu ]
- [ chmod, a+rx, /etc/libvirt/hooks/qemu ]
- [ systemctl, restart, libvirtd ]
- [ wget, 'https://storage.bitmessage.org/virt-install-all.sh', -O,
/usr/local/bin/virt-install-all.sh ]
- [ chmod, a+rx, /usr/local/bin/virt-install-all.sh ]
- [ /usr/local/bin/virt-install-all.sh ]
- 'sensors-detect --auto|sed -n "/#----cut here---/,/#----cut here----/p"|grep -vE "^#"|xargs -n 1 modprobe'
- [ systemctl, start, sshd ]
- [ systemctl, start, docker ]