libstdc++ libtool libuuid linux-headers lzip lzo m4 make mkinitfs mpc1
mpfr3 mtools musl-dev ncurses-libs ncurses-terminfo ncurses-terminfo-base
patch pax-utils pcre perl pkgconf python2 python2-dev readline
- readline-dev sqlite-libs squashfs-tools sudo tar texinfo xorriso xz-libs"
+ readline-dev sqlite-libs squashfs-tools sudo tar texinfo xorriso xz-libs
+ py-sphinx"
subpackages="$pkgname-dev $pkgname-doc $pkgname-dbg"
source="$pkgname-$pkgver.tar.gz"
developer/OSPF-API.md \
developer/workflow.rst \
developer/Building_FRR_on_Ubuntu1404.rst \
+ developer/Building_FRR_on_Alpine.rst \
user/ospf_fundamentals.rst \
user/routemap.rst \
user/index.rst \
--- /dev/null
+Building FRR dev packages on Alpine Linux from Git Source
+=========================================================
+
+For building Alpine Linux dev packages, we use docker.
+
+Install docker 17.05 or later
+-----------------------------
+
+Depending on your host, there are different ways of installing
+docker. Refer to the documentation here for instructions on how
+to install a free version of docker: https://www.docker.com/community-edition
+
+Work with sources
+-----------------
+
+ git clone https://github.com/frrouting/frr.git frr
+ cd frr
+
+Build apk packages
+------------------
+
+ ./docker/alpine/build.sh
+
+This will put the apk packages in:
+
+ ./docker/pkgs/apk/x86_64/
+
+Usage
+-----
+
+To add the packages to a docker image, create a Dockerfile in ./docker/pkgs:
+
+ FROM alpine:3.7
+ RUN mkdir -p /pkgs
+ ADD apk/ /pkgs/
+ RUN apk add --no-cache --allow-untrusted /pkgs/x86_64/*.apk
+
+And build a docker image:
+
+ docker build --rm --force-rm -t alpine-dev-pkgs:latest docker/pkgs
+
+And run the image:
+
+ docker run -it --rm alpine-dev-pkgs:latest /bin/sh
+
+Currently, we only package the raw daemons and example files, so, you'll
+need to run the daemons by hand (or, better, orchestrate in the Dockerfile).
:maxdepth: 2
Building_FRR_on_LEDE-OpenWRT
+ Building_FRR_on_Alpine
Building_FRR_on_CentOS6
Building_FRR_on_CentOS7
Building_FRR_on_Debian8
--- /dev/null
+src.tar
+pkgs/
--- /dev/null
+FROM alpine:3.7 as source-builder
+ARG commit
+RUN apk add --no-cache abuild acct alpine-sdk attr autoconf automake bash \
+ binutils binutils-libs bison bsd-compat-headers build-base \
+ c-ares c-ares-dev ca-certificates cryptsetup-libs curl \
+ device-mapper-libs expat fakeroot flex fortify-headers g++ gcc gdbm \
+ git gmp isl json-c json-c-dev kmod lddtree libacl libatomic libattr \
+ libblkid libburn libbz2 libc-dev libcap libcurl libedit libffi libgcc \
+ libgomp libisoburn libisofs libltdl libressl libssh2 \
+ libstdc++ libtool libuuid linux-headers lzip lzo m4 make mkinitfs mpc1 \
+ mpfr3 mtools musl-dev ncurses-libs ncurses-terminfo ncurses-terminfo-base \
+ patch pax-utils pcre perl pkgconf python2 python2-dev readline \
+ readline-dev sqlite-libs squashfs-tools sudo tar texinfo xorriso xz-libs \
+ groff gzip bc py-sphinx
+RUN mkdir -p /src
+ADD src.tar /src
+RUN (cd /src && \
+ ./bootstrap.sh && \
+ ./configure \
+ --enable-numeric-version \
+ --with-pkg-extra-version=_git$commit && \
+ make dist)
+FROM alpine:3.7 as alpine-builder
+RUN apk add --no-cache abuild alpine-sdk && mkdir -p /pkgs/apk
+ADD alpine-build.sh /usr/bin/
+ADD builder /etc/sudoers.d
+COPY --from=source-builder /src/*.tar.gz /src/alpine/APKBUILD /dist/
+RUN adduser -D -G abuild builder && chown -R builder /dist /pkgs
+USER builder
+RUN /usr/bin/alpine-build.sh
--- /dev/null
+#!/bin/sh
+
+set -e
+
+cd /dist
+
+sudo apk --update add alpine-conf
+sudo setup-apkcache /var/cache/apk
+abuild-keygen -a -n
+abuild checksum
+abuild -r -P /pkgs/apk
--- /dev/null
+#!/bin/sh
+
+set -e
+set -v
+set -x
+
+##
+# commit must be converted to decimal
+##
+c=`git rev-parse --short=10 HEAD`
+commit=`printf '%u\n' 0x$c`
+git archive --format=tar $c > docker/alpine/src.tar
+(cd docker/alpine && \
+ docker build --build-arg commit=$commit --rm --force-rm -t \
+ frr:alpine-$c . && \
+ rm -f src.tar)
+
+id=`docker create frr:alpine-$c`
+docker cp ${id}:/pkgs/ docker
+docker rm $id
+docker rmi frr:alpine-$c
--- /dev/null
+builder ALL=(ALL) NOPASSWD:ALL