summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/docker_rbclient/Dockerfile66
-rw-r--r--tools/docker_rbclient/README35
-rw-r--r--tools/docker_rbclient/runclient_modified.sh33
3 files changed, 134 insertions, 0 deletions
diff --git a/tools/docker_rbclient/Dockerfile b/tools/docker_rbclient/Dockerfile
new file mode 100644
index 0000000000..4c31dedd62
--- /dev/null
+++ b/tools/docker_rbclient/Dockerfile
@@ -0,0 +1,66 @@
1FROM debian:9
2
3WORKDIR /home/rb
4
5ENV HOME /home/rb
6ENV MAKEFLAGS -j12
7
8RUN apt-get update && \
9 DEBIAN_FRONTEND=noninteractive apt-get install -y \
10 build-essential \
11 git \
12 perl \
13 curl \
14 texinfo \
15 flex \
16 bison \
17 bzip2 \
18 gzip \
19 zip \
20 patch \
21 automake \
22 libtool \
23 libtool-bin \
24 autoconf \
25 libmpc-dev \
26 gawk \
27 python \
28 python-lzo \
29 python-setuptools \
30 mtd-utils \
31 xorriso \
32 wget \
33 subversion \
34 libncurses5-dev \
35 texlive-latex-base \
36 texlive-binaries \
37 texlive-latex-extra \
38 tex4ht \
39 texlive-fonts-recommended \
40 lmodern \
41 latex-xcolor \
42 texlive-base \
43 libsdl1.2-dev \
44 libsdl1.2debian
45
46RUN cd /home/rb && git clone git://git.rockbox.org/rockbox
47
48RUN cd /home/rb/rockbox && ./tools/rockboxdev.sh --target="s"
49RUN cd /home/rb/rockbox && ./tools/rockboxdev.sh --target="m"
50RUN cd /home/rb/rockbox && ./tools/rockboxdev.sh --target="a"
51RUN cd /home/rb/rockbox && ./tools/rockboxdev.sh --target="i"
52RUN cd /home/rb/rockbox && ./tools/rockboxdev.sh --target="x"
53RUN cd /home/rb/rockbox && ./tools/rockboxdev.sh --target="y"
54
55# compile sometimes fails; place this last to avoid duplicate work
56RUN cd /home/rb/rockbox && ./tools/rockboxdev.sh --target="r"
57
58RUN cd /home/rb/rockbox && \
59 wget "http://git.rockbox.org/?p=www.git;a=blob_plain;f=buildserver/rbclient.pl;hb=HEAD" -O rbclient.pl && \
60 chmod +x rbclient.pl
61
62COPY runclient_modified.sh /home/rb/rockbox/runclient.sh
63
64RUN cd /home/rb/rockbox && chmod +x runclient.sh
65
66ENTRYPOINT cd /home/rb/rockbox && ./runclient.sh $USER $PASS $NAME
diff --git a/tools/docker_rbclient/README b/tools/docker_rbclient/README
new file mode 100644
index 0000000000..a514e75c28
--- /dev/null
+++ b/tools/docker_rbclient/README
@@ -0,0 +1,35 @@
1This directory builds a Docker container image for a rockbox build
2client with all toolchains except android.
3
4There is a pre-built client available as built1n/rbclient on Docker
5Hub if you would like to avoid having to build all the toolchains. See
6the Docker documentation on how to pull and run it.
7
8To build from scratch:
9
101. Make sure you have Docker installed and running.
11
122. Run:
13
14 docker build . -t myclient
15
16 This will build the image and tag it as `myclient.'
17
183. To run your client:
19
20 docker run -e USER=your username -e PASS=anything -e NAME=clientname \
21 myclient
22
23 You can also run a bash shell interactively by issuing:
24
25 docker run -it myclient bash
26
27 This will drop you into a fully-equiped rockbox development
28 environment.
29
30It is also possible to pull straight from Docker Hub. Run:
31
32 docker pull built1n/rbclient
33
34Then you can use all the commands above, with `myclient' replaced with
35`built1n/rbclient'. \ No newline at end of file
diff --git a/tools/docker_rbclient/runclient_modified.sh b/tools/docker_rbclient/runclient_modified.sh
new file mode 100644
index 0000000000..7688291314
--- /dev/null
+++ b/tools/docker_rbclient/runclient_modified.sh
@@ -0,0 +1,33 @@
1#!/bin/sh
2trap "exit" INT
3
4USER=$1
5PASS=$2
6NAME=$3
7ARCHLIST=arm-eabi-gcc444,arm-rb-gcc494,sh,m68k-gcc452,mipsel-gcc494,mipsel-rb-gcc494,sdl,latex
8
9while true
10do
11 if [ -f "rbclient.pl.new" ]; then
12 mv "rbclient.pl.new" "rbclient.pl"
13 fi
14 # Possible values for archlist are:
15
16 # arm-eabi-gcc444 : needed for ARM-based traditional targets
17 # arm-rb-gcc494 : linux based sony players, Samsung YP-R0 YP-R1
18 # sh : SH-based players, i.e. the Archoses
19 # m68k-gcc452 : coldfire-based players
20 # mipsel-gcc494 : MIPS-based players
21 # mipsel-rb-gcc494: linux based MIPS players i.e Agptek Rocker (Benjie T6)
22 # sdl : Non-crosscompiled targets. Simulators, application, checkwps, database tool, ...
23 # android16 : Android port
24 # latex : manuual
25
26 perl -s rbclient.pl -username=$USER -password=$PASS -clientname=$NAME -archlist=$ARCHLIST -buildmaster=buildmaster.rockbox.org -port=19999
27 res=$?
28 if test "$res" -eq 22; then
29 echo "Address the above issue(s), then restart!"
30 exit
31 fi
32 sleep 30
33done