Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| docs:guide-developer:toolchain:install-buildsystem [2021/10/16 01:09] – [Arch / Manjaro] formatting vgaetera | docs:guide-developer:toolchain:install-buildsystem [2024/09/30 18:39] (current) – [Void] Remove Python 2 and add missing packages from the requirements table harpia | ||
|---|---|---|---|
| Line 11: | Line 11: | ||
| < | < | ||
| - | ^ Prerequisite ^ Debian ^ SUSE ^ Red Hat ^ macOS (via MacPorts) ^ Fedora ^ Arch ^ Gentoo ^ | + | ^ Prerequisite |
| - | | asciidoc | asciidoc | asciidoc | asciidoc | asciidoc | asciidoc | asciidoc | app-text/ | + | | asciidoc |
| - | | [[wp> | + | | [[wp> |
| - | | [[wp>GNU Binutils]] | binutils | binutils| binutils| binutils| binutils| binutils| sys-devel/ | + | | [[wp>GNU Binutils]] |
| - | | [[wp> | + | | [[wp> |
| - | | [[wp> | + | | [[wp> |
| - | | [[wp>Git (software)|git]] | git-core| git-core| git | git-core | git | git| dev-vcs/git | | + | | [[wp>Git (software)|git]] |
| - | | [[wp>GNU C++ Compiler]] | %%g++%% | %%gcc-c++%% | %%gcc-c++%% | ? | %%gcc-c++%% | gcc | sys-devel/ | + | | [[wp>GNU C++ Compiler]] |
| - | | [[wp>GNU C Compiler]] | gcc| gcc| gcc| ?| gcc| gcc| sys-devel/ | + | | [[wp>GNU C Compiler]] |
| - | | GNU Time | ? | ? | ? | ? | ? | time | sys-process/ | + | | GNU Time |
| - | | getopt | util-linux | util-linux | util-linux | getopt| util-linux | util-linux | sys-apps/ | + | | getopt |
| - | | [[wp>GNU awk]] | gawk| gawk| gawk| gawk| gawk| gawk| sys-apps/ | + | | [[wp>GNU awk]] |
| - | | help2man | help2man | ? | ? | ? | help2man | help2man | sys-apps/ | + | | [[wp> |
| - | | intltool-update | intltool| intltool| intltool| intltool| intltool| intltool | dev-util/ | + | | help2man |
| - | | libelf-dev | libelf-dev | ? | ? | ? | elfutils-libelf-devel | libelf | virtual/ | + | | intltool-update |
| - | | libz, libz-dev | zlib1g-dev | zlib-devel| zlib-devel| zlib| zlib-devel| zlib | sys-libs/ | + | | libelf-dev |
| - | | [[wp> | + | | libz, libz-dev |
| - | | [[wp> | + | | [[wp> |
| - | | openssl/ | + | | [[wp> |
| - | | patch| patch | patch | patch | patchutils| patch| patch | sys-devel/ | + | | openssl/ |
| - | | perl-ExtUtils-MakeMaker| perl-modules | perl-ExtUtils-MakeMaker| perl-ExtUtils-MakeMaker| p5-extutils-makemaker| perl-ExtUtils-MakeMaker| perl-extutils-makemaker | virtual/ | + | | patch | patch |
| - | | perl-Thread-Queue | ? | ? | ? | ? | perl-Thread-Queue | ? | virtual/ | + | | perl-ExtUtils-MakeMaker |
| - | | python2-dev | python2-dev | python-devel| ?| python2| ? | python2 | dev-lang/ | + | | perl-Thread-Queue |
| - | | ? | python3-dev | ? | ? | ? | ? | ? | ? | | + | | python2-dev |
| - | | unzip | unzip| unzip| unzip| unzip| unzip| unzip | app-arch/ | + | | ? | python3-dev |
| - | | [[wp>GNU Wget]] | wget | wget| wget| wget| wget| wget | net-misc/ | + | | [[wp> |
| - | | xgettext | gettext| gettext-tools| gettext | gettext| gettext| gettext | sys-devel/ | + | | unzip | unzip |
| - | | xsltproc | xsltproc| libxslt-tools| ?| libxslt| libxslt| libxslt | dev-libs/ | + | | [[wp>GNU Wget]] |
| - | | zlib, zlib-static| zlib1g-dev| zlib-devel-static | zlib-devel | zlib-devel| zlib-devel, | + | | xgettext |
| + | | xsltproc | ||
| + | | zlib, zlib-static | ||
| </ | </ | ||
| + | |||
| + | Note that the advice above may be somewhat outdated. E.g. python3 is currently the default in OpenWrt master, 22.03 and 21.02, while python2.7 has been removed due its end-of-life. | ||
| ===== Package prerequisites ===== | ===== Package prerequisites ===== | ||
| Line 49: | Line 53: | ||
| < | < | ||
| - | ^ Package ^ Prerequisite ^ Debian ^ SUSE ^ Red Hat ^ macOS ^ Fedora ^ Arch ^ Gentoo ^ | + | ^ Package ^ Prerequisite ^ Debian ^ SUSE ^ Red Hat ^ macOS (via MacPorts) |
| - | | boost | bjam / boost-jam | libboost-dev | | | | boost-jam | boost | dev-util/ | + | | boost | bjam / boost-jam | libboost-dev | | | boost-jam boost-build |
| - | | intltool | [Perl] XML::Parser | libxml-parser-perl | | perl-XML-Parser | | perl-XML-Parser | intltool | dev-perl/ | + | | intltool | [Perl] XML::Parser | libxml-parser-perl | | perl-XML-Parser | p5.28-xml-parser p5.30-xml-parser |
| - | | libftdi | libusb-config | libusb-dev | | | | libusb-devel | libusb | dev-libs/ | + | | libftdi |
| - | | lilo | as86,ld86 | bin86 | | | | dev86 | bin86 | sys-devel/ | + | | lilo | as86,ld86 | bin86 | | | binutils |
| - | | lilo | bcc | bcc | | | | dev86 | [[https:// | + | | lilo | bcc< |
| - | | lilo | uudecode | sharutils | | | | sharutils | sharutils | app-arch/ | + | | lilo | uudecode | sharutils | | | sharutils |
| - | | luajit | x86 %%g++%% libs on amd64 hosts| %%gcc-multilib%% | | | | | | | | + | | luajit, |
| - | | classpath| javac, gcj | openjdk-7-jdk | | | | java-1.7.0-openjdk-devel | jdk7-openjdk | dev-java/ | + | | classpath |
| - | | mac80211 | b43-fwcutter | | | | | b43-fwcutter | b43-fwcutter | net-wireless/ | + | | mac80211 | b43-fwcutter< |
| - | | jamvm | zip | | | | | zip | | app-arch/ | + | | jamvm< |
| </ | </ | ||
| - | ===== Linux distributions ===== | + | ===== Linux (GNU-Linux) |
| Distribution-specific instructions. | Distribution-specific instructions. | ||
| + | |||
| + | <WRAP info> Please note that OpenWrt master, 22.03 and 21.02 branches do not need python2.7 any more. Python3 should be your default.</ | ||
| ==== Alpine ==== | ==== Alpine ==== | ||
| <code bash> | <code bash> | ||
| - | apk add asciidoc bash bc binutils bzip2 cdrkit coreutils | + | apk add argp-standalone |
| - | findutils flex g++ gawk gcc gettext git grep intltool libxslt | + | |
| - | linux-headers make ncurses-dev openssl-dev patch perl python2-dev \ | + | |
| - | python3-dev rsync tar unzip util-linux wget zlib-dev | + | |
| + | | ||
| + | |||
| + | # python2-dev required for OpenWrt 19.07 and earlier is not available on Alpine Linux 3.16 and newer | ||
| + | |||
| + | # missing dependency workaround (libtinfo is not installable by any APK package, | ||
| + | # but can be simulated via libncurses (see: https:// | ||
| + | # w/o this - ERROR: package/ | ||
| + | ln -s / | ||
| </ | </ | ||
| - | ==== Arch / Manjaro ==== | + | ==== Arch / Manjaro |
| Arch users may install the [[https:// | Arch users may install the [[https:// | ||
| Line 81: | Line 95: | ||
| bzip2 fakeroot file findutils flex gawk gcc gettext git grep groff \ | bzip2 fakeroot file findutils flex gawk gcc gettext git grep groff \ | ||
| gzip libelf libtool libxslt m4 make ncurses openssl patch pkgconf \ | gzip libelf libtool libxslt m4 make ncurses openssl patch pkgconf \ | ||
| - | python rsync sed texinfo time unzip util-linux wget which zlib | + | python |
| # Optional prerequisites, | # Optional prerequisites, | ||
| - | pacman -S --needed asciidoc help2man intltool perl-extutils-makemaker | + | pacman -S --needed asciidoc help2man intltool perl-extutils-makemaker |
| </ | </ | ||
| - | ==== CentOS / Fedora ==== | + | ==== Fedora |
| <code bash> | <code bash> | ||
| sudo dnf --setopt install_weak_deps=False --skip-broken install \ | sudo dnf --setopt install_weak_deps=False --skip-broken install \ | ||
| Line 93: | Line 107: | ||
| rsync tar unzip wget which diffutils python2 python3 perl-base \ | rsync tar unzip wget which diffutils python2 python3 perl-base \ | ||
| perl-Data-Dumper perl-File-Compare perl-File-Copy perl-FindBin \ | perl-Data-Dumper perl-File-Compare perl-File-Copy perl-FindBin \ | ||
| - | perl-Thread-Queue | + | perl-IPC-Cmd perl-JSON-PP |
| + | </ | ||
| - | # Fedora 34 | + | ==== Debian / Ubuntu / Mint ==== |
| - | unset -f which; cd openwrt; mkdir -p staging_dir/host/ | + | |
| - | ln -f -s $(type | + | |
| + | Modernized set for Ubuntu 24.04 that has Python 3.12 without python3-distutils: | ||
| + | (OpenWrt main/master in Apr 2024) | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt update | ||
| + | sudo apt install build-essential clang flex bison g++ gawk \ | ||
| + | gcc-multilib g++-multilib gettext git libncurses5-dev libssl-dev \ | ||
| + | python3-setuptools rsync swig unzip zlib1g-dev file wget | ||
| </ | </ | ||
| - | ==== Debian / Ubuntu | + | |
| + | set for Ubuntu | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt update | ||
| + | sudo apt install build-essential clang flex bison g++ gawk \ | ||
| + | gcc-multilib g++-multilib gettext git libncurses-dev libssl-dev \ | ||
| + | python3-distutils python3-setuptools rsync swig unzip zlib1g-dev file wget | ||
| + | </ | ||
| + | |||
| + | Older advice (for 19.07 and earlier that need python2.7): | ||
| <code bash> | <code bash> | ||
| sudo apt update | sudo apt update | ||
| Line 139: | Line 173: | ||
| coreutils diffutils findutils flex gawk gcc gettext git grep intltool \ | coreutils diffutils findutils flex gawk gcc gettext git grep intltool \ | ||
| libxslt linux-headers make ncurses-devel openssl-devel patch perl \ | libxslt linux-headers make ncurses-devel openssl-devel patch perl \ | ||
| - | pkg-config | + | pkg-config python3-devel rsync tar unzip util-linux |
| - | wget zlib-devel | + | zlib-devel |
| + | help2man swig | ||
| + | |||
| + | # for musl version, also install: argp-standalone musl-fts-devel musl-obstack-devel | ||
| + | </ | ||
| + | |||
| + | ===== macOS distributions: | ||
| + | macOS distribution-specific instructions. macOS uses Darwin unix as its core. Xcode/CLT toolchain, & 3rd-party package-manager tool allows to load various common build tools.\\ | ||
| + | More info: [[https:// | ||
| + | |||
| + | ==== macOS / Darwin (x86_64) + MacPorts ==== | ||
| + | <code bash> | ||
| + | sudo port install libiconv gettext-runtime coreutils findutils gwhich \ | ||
| + | gawk zlib pcre bzip2 ncurses grep getopt gettext-tools-libs gettext \ | ||
| + | diffutils sharutils util-linux libxslt libxml2 help2man readline gtime \ | ||
| + | gnutar unzip zip lzma xz libelf fastjar libusb libftdi0 expat sqlite3 \ | ||
| + | openssl3 openssl kerberos5 dbus lz4 libunistring nettle icu gnutls \ | ||
| + | p11-kit wget quilt subversion gmake pkgconfig libzip cdrtools ccache \ | ||
| + | curl xxhashlib rsync libidn perl5 p5.28-xml-parser p5.30-xml-parser \ | ||
| + | p5-extutils-makemaker p5-data-dumper boost-jam boost boost-build bash \ | ||
| + | bash-completion binutils m4 flex intltool patchutils swig git-extras \ | ||
| + | git openjdk17 openjdk7-zulu luajit libtool glib2 file python27 \ | ||
| + | python310 libzzip mercurial asciidoc sdcc gnu-classpath</ | ||
| + | |||
| + | ===== Unix distributions: | ||
| + | Distribution-specific instructions. | ||
| + | |||
| + | ==== FreeBSD ==== | ||
| + | <code bash> | ||
| + | ... | ||
| </ | </ | ||