Replicant60BuildDependenciesInstallation » History » Version 66
Denis 'GNUtoo' Carikli, 08/07/2019 11:55 AM
replicant 4.2: trisquel7: fix build-essential : Depends: gcc (>= 4:4.4.3) but it is not going to be installed and Depends: g++ (>= 4:4.4.3) but it is not going to be installed
1 | 43 | Paul Kocialkowski | h1. Build dependencies installation |
---|---|---|---|
2 | 6 | Paul Kocialkowski | |
3 | 40 | Paul Kocialkowski | *Replicant can only be built on 64 bit x86 architectures, building on 32 bit x86 systems is no longer supported.* |
4 | However, some prebuilt tools are still 32 bit x86 executables and some host tools are generated as 32 bit x86 executables. |
||
5 | 19 | Paul Kocialkowski | |
6 | 58 | Wolfgang Wiedmeyer | It is recommended to have at least 4GB of RAM available. |
7 | |||
8 | 54 | Wolfgang Wiedmeyer | h2. Replicant 6.0 |
9 | 19 | Paul Kocialkowski | |
10 | 54 | Wolfgang Wiedmeyer | h3. Debian-based systems |
11 | 1 | Paul Kocialkowski | |
12 | 54 | Wolfgang Wiedmeyer | *Debian 9* |
13 | |||
14 | 49 | Paul Kocialkowski | Packages installation: |
15 | 1 | Paul Kocialkowski | |
16 | <pre> |
||
17 | 54 | Wolfgang Wiedmeyer | dpkg --add-architecture i386 ; apt-get update |
18 | apt-get build-dep gcc binutils llvm-defaults |
||
19 | 61 | Fil Bergamo | apt-get install gcc-arm-none-eabi cmake python-dev swig ant bc proguard maven-debian-helper libemma-java libasm4-java libguava-java libnb-platform18-java libnb-org-openide-util-java libandroidsdk-ddmlib-java libmaven-source-plugin-java libfreemarker-java libmaven-javadoc-plugin-java ca-cacert curl gawk libgmp3-dev libmpfr-dev libmpc-dev git-core gperf libncurses-dev squashfs-tools pngcrush zip zlib1g-dev lzma libc6-dev-i386 g++-multilib lib32z1-dev lib32readline-dev lib32ncurses5-dev zlib1g-dev:i386 xsltproc python-mako schedtool gradle dirmngr libandroidsdk-sdklib-java eclipse-jdt libgradle-android-plugin-java android-sdk-build-tools android-sdk-platform-23 aapt lzop rsync |
20 | 1 | Paul Kocialkowski | </pre> |
21 | 55 | Wolfgang Wiedmeyer | |
22 | The @repo@ tool for downloading the Replicant source code "is available in the contrib repository":https://packages.debian.org/stretch/repo (see "bug #855846":https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%23855846 for the reasons why it was moved to contrib). |
||
23 | 54 | Wolfgang Wiedmeyer | |
24 | 59 | Denis 'GNUtoo' Carikli | h3. Tips to make it build: |
25 | |||
26 | * #1847 |
||
27 | 60 | Denis 'GNUtoo' Carikli | * #1848 |
28 | 59 | Denis 'GNUtoo' Carikli | |
29 | 54 | Wolfgang Wiedmeyer | h2. Replicant 4.2 |
30 | |||
31 | h3. Debian-based systems |
||
32 | |||
33 | *Trisquel 7.0* |
||
34 | |||
35 | Packages installation: |
||
36 | |||
37 | <pre> |
||
38 | 65 | Denis 'GNUtoo' Carikli | dpkg --add-architecture i386 ; apt-get update |
39 | 66 | Denis 'GNUtoo' Carikli | apt-get install build-essential |
40 | apt-get install git gnupg flex bison gperf zip curl openjdk-7-jre openjdk-7-jdk libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils libxml2-dev xsltproc zlib1g-dev:i386 repo |
||
41 | 1 | Paul Kocialkowski | </pre> |
42 | 40 | Paul Kocialkowski | |
43 | 54 | Wolfgang Wiedmeyer | *Debian 8* |
44 | 49 | Paul Kocialkowski | |
45 | 1 | Paul Kocialkowski | Packages installation: |
46 | 52 | Wolfgang Wiedmeyer | |
47 | 40 | Paul Kocialkowski | <pre> |
48 | 1 | Paul Kocialkowski | dpkg --add-architecture i386 ; apt-get update |
49 | 62 | Denis 'GNUtoo' Carikli | apt-get install bison flex git-core gperf libncurses-dev build-essential curl squashfs-tools openjdk-7-jre openjdk-7-jdk pngcrush wget zip zlib1g-dev lzma libxml2-utils libxml2-dev libc6-dev-i386 g++-multilib lib32z1-dev lib32readline-gplv2-dev lib32ncurses5-dev zlib1g-dev:i386 xsltproc |
50 | 1 | Paul Kocialkowski | </pre> |
51 | |||
52 | 63 | Denis 'GNUtoo' Carikli | h3. Tweaks |
53 | 1 | Paul Kocialkowski | |
54 | 63 | Denis 'GNUtoo' Carikli | h4. libxml2.so |
55 | |||
56 | If you have the following error: |
||
57 | <pre> |
||
58 | $ ./vendor/replicant/build-toolchain |
||
59 | [...] |
||
60 | -- Clang version: 3.7.0 |
||
61 | -- Configuring done |
||
62 | -- Generating done |
||
63 | -- Build files have been written to: /home/replicant/replicant-6.0/toolchain/clang |
||
64 | + nproc |
||
65 | + echo 1 |
||
66 | + make -j 1 |
||
67 | [...] |
||
68 | [ 98%] Built target libclang |
||
69 | make[2]: *** No rule to make target '/usr/lib64/libxml2.so', needed by 'bin/c-index-test'. Stop. |
||
70 | CMakeFiles/Makefile2:13807: recipe for target 'tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/all' failed |
||
71 | make[1]: *** [tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/all] Error 2 |
||
72 | Makefile:149: recipe for target 'all' failed |
||
73 | make: *** [all] Error 2 |
||
74 | </pre> |
||
75 | make sure that you have libxml2-dev installed |
||
76 | |||
77 | h4. missing lib32readline5-dev |
||
78 | |||
79 | If the packages manager complains about @lib32readline5-dev@ being missing, it has to be replaced with @lib32readline-gplv2-dev@ in the command line. |
||
80 | |||
81 | 64 | Denis 'GNUtoo' Carikli | h4. missing /usr/lib/zconf.h header |
82 | 63 | Denis 'GNUtoo' Carikli | |
83 | If the @/usr/lib/zconf.h@ header is missing, a symlink has to be created: |
||
84 | 21 | Paul Kocialkowski | <pre> |
85 | 49 | Paul Kocialkowski | ln -s /usr/include/x86_64-linux-gnu/zconf.h /usr/lib/zconf.h |
86 | 19 | Paul Kocialkowski | </pre> |
87 | * If errors messages about incompatible library versions are shown, some symlinks have to be created. For instance: |
||
88 | 1 | Paul Kocialkowski | <pre> |
89 | sudo ln -s /usr/lib32/libstdc++.so.6.0.14 /usr/lib32/libstdc++.so |
||
90 | 26 | Denis 'GNUtoo' Carikli | sudo ln -s /usr/lib32/libz.so.1.2.3.4 /usr/lib32/libz.so |
91 | 1 | Paul Kocialkowski | </pre> |
92 | |||
93 | 54 | Wolfgang Wiedmeyer | h3. Arch Linux-based systems |
94 | 26 | Denis 'GNUtoo' Carikli | |
95 | 54 | Wolfgang Wiedmeyer | *Parabola* |
96 | 26 | Denis 'GNUtoo' Carikli | |
97 | 47 | Paul Kocialkowski | Base packages (from the Parabola repositories) installation: |
98 | 7 | Denis 'GNUtoo' Carikli | <pre> |
99 | 57 | Wolfgang Wiedmeyer | pacman -S --needed core/bison core/flex core/make core/ncurses core/xz core/zlib extra/bc extra/git extra/gperf extra/gperftools libre/jdk7-openjdk extra/openjdk7-src libre/jre7-openjdk extra/wget extra/zip community/squashfs-tools community/pngcrush libre/unzip community/repo |
100 | 1 | Paul Kocialkowski | </pre> |
101 | 47 | Paul Kocialkowski | |
102 | Some additional repositories are required to retrieve some of the build dependencies. |
||
103 | |||
104 | 28 | Denis 'GNUtoo' Carikli | To enable those repositories, the following should be added to @/etc/pacman.conf@: |
105 | <pre> |
||
106 | [libre-multilib] |
||
107 | 39 | Paul Kocialkowski | Include = /etc/pacman.d/mirrorlist |
108 | 29 | Denis 'GNUtoo' Carikli | |
109 | 1 | Paul Kocialkowski | [multilib] |
110 | 39 | Paul Kocialkowski | Include = /etc/pacman.d/mirrorlist |
111 | 26 | Denis 'GNUtoo' Carikli | </pre> |
112 | 47 | Paul Kocialkowski | |
113 | 1 | Paul Kocialkowski | For these changes to take effect, the packages database should be updated: |
114 | <pre> |
||
115 | 47 | Paul Kocialkowski | pacman -Syu |
116 | 1 | Paul Kocialkowski | </pre> |
117 | 47 | Paul Kocialkowski | |
118 | Additional packages installation: |
||
119 | <pre> |
||
120 | 53 | Denis 'GNUtoo' Carikli | pacman -S --needed multilib/lib32-glibc multilib/gcc-multilib multilib/lib32-readline multilib/lib32-ncurses multilib/lib32-zlib |
121 | 40 | Paul Kocialkowski | </pre> |
122 | |||
123 | 54 | Wolfgang Wiedmeyer | *Tweaks* |
124 | 40 | Paul Kocialkowski | |
125 | 48 | Paul Kocialkowski | * repo may complain about experimental python 3 support: python 2 has to be set as default instead: |
126 | 40 | Paul Kocialkowski | <pre> |
127 | ln -s /usr/bin/python2 /usr/local/bin/python |
||
128 | 1 | Paul Kocialkowski | </pre> |