diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/docker_rbclient/Dockerfile | 66 | ||||
-rw-r--r-- | tools/docker_rbclient/README | 35 | ||||
-rw-r--r-- | tools/docker_rbclient/runclient_modified.sh | 33 |
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 @@ | |||
1 | FROM debian:9 | ||
2 | |||
3 | WORKDIR /home/rb | ||
4 | |||
5 | ENV HOME /home/rb | ||
6 | ENV MAKEFLAGS -j12 | ||
7 | |||
8 | RUN 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 | |||
46 | RUN cd /home/rb && git clone git://git.rockbox.org/rockbox | ||
47 | |||
48 | RUN cd /home/rb/rockbox && ./tools/rockboxdev.sh --target="s" | ||
49 | RUN cd /home/rb/rockbox && ./tools/rockboxdev.sh --target="m" | ||
50 | RUN cd /home/rb/rockbox && ./tools/rockboxdev.sh --target="a" | ||
51 | RUN cd /home/rb/rockbox && ./tools/rockboxdev.sh --target="i" | ||
52 | RUN cd /home/rb/rockbox && ./tools/rockboxdev.sh --target="x" | ||
53 | RUN cd /home/rb/rockbox && ./tools/rockboxdev.sh --target="y" | ||
54 | |||
55 | # compile sometimes fails; place this last to avoid duplicate work | ||
56 | RUN cd /home/rb/rockbox && ./tools/rockboxdev.sh --target="r" | ||
57 | |||
58 | RUN 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 | |||
62 | COPY runclient_modified.sh /home/rb/rockbox/runclient.sh | ||
63 | |||
64 | RUN cd /home/rb/rockbox && chmod +x runclient.sh | ||
65 | |||
66 | ENTRYPOINT 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 @@ | |||
1 | This directory builds a Docker container image for a rockbox build | ||
2 | client with all toolchains except android. | ||
3 | |||
4 | There is a pre-built client available as built1n/rbclient on Docker | ||
5 | Hub if you would like to avoid having to build all the toolchains. See | ||
6 | the Docker documentation on how to pull and run it. | ||
7 | |||
8 | To build from scratch: | ||
9 | |||
10 | 1. Make sure you have Docker installed and running. | ||
11 | |||
12 | 2. Run: | ||
13 | |||
14 | docker build . -t myclient | ||
15 | |||
16 | This will build the image and tag it as `myclient.' | ||
17 | |||
18 | 3. 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 | |||
30 | It is also possible to pull straight from Docker Hub. Run: | ||
31 | |||
32 | docker pull built1n/rbclient | ||
33 | |||
34 | Then 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 | ||
2 | trap "exit" INT | ||
3 | |||
4 | USER=$1 | ||
5 | PASS=$2 | ||
6 | NAME=$3 | ||
7 | ARCHLIST=arm-eabi-gcc444,arm-rb-gcc494,sh,m68k-gcc452,mipsel-gcc494,mipsel-rb-gcc494,sdl,latex | ||
8 | |||
9 | while true | ||
10 | do | ||
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 | ||
33 | done | ||