diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2a6bef1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,112 @@ +FROM lsiobase/alpine:3.12 + +# set version label +ARG BUILD_DATE +ARG VERSION +ARG HASS_RELEASE +ARG HACS_RELEASE +LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" +LABEL maintainer="saarg" + +# environment settings +ENV HOME="/tmp" + +# install packages +RUN \ + echo "**** install build packages ****" && \ + apk add --no-cache --virtual=build-dependencies \ + autoconf \ + bluez-deprecated \ + ca-certificates \ + cmake \ + curl \ + cython \ + eudev-dev \ + eudev-libs \ + ffmpeg \ + ffmpeg-dev \ + gcc \ + glib-dev \ + g++ \ + jq \ + libffi-dev \ + libjpeg-turbo \ + libjpeg-turbo-dev \ + libstdc++ \ + libxml2-dev \ + libxslt \ + libxslt-dev \ + make \ + openssl \ + openssl-dev \ + py3-pip \ + py3-wheel \ + python3 \ + python3-dev \ + sudo \ + unzip + +RUN \ + echo "**** find packages to build for homeassistant ****" && \ + mkdir -p \ + /tmp/core && \ + if [ -z ${HASS_RELEASE+x} ]; then \ + HASS_RELEASE=$(curl -sX GET https://api.github.com/repos/home-assistant/core/releases/latest \ + | jq -r .tag_name); \ + fi && \ + curl -o \ + /tmp/core.tar.gz -L \ + "https://github.com/home-assistant/core/archive/${HASS_RELEASE}.tar.gz" && \ + tar xf \ + /tmp/core.tar.gz -C \ + /tmp/core --strip-components=1 + +RUN \ + echo "**** make folders for building wheels and upgrade pip ****" && \ + mkdir -p \ + /build/addons \ + /build/core && \ + pip3 install --no-cache-dir --upgrade \ + pip + +RUN \ + echo "**** build wheels for home assistant core ****" && \ + awk '/# Home Assistant core/,/^$/' /tmp/core/requirements_all.txt > /tmp/requirements_hass.txt && \ + awk '/# homeassistant.components.trend/,/^$/' /tmp/core/requirements_all.txt >> /tmp/requirements_hass.txt && \ + pip3 wheel --wheel-dir=/build/core --no-cache-dir \ + -r /tmp/requirements_hass.txt + +RUN \ + echo "**** build wheels for home assistant addons ****" && \ + sed -i "s/-r requirements_test.txt/-r \/tmp\/core\/requirements_test.txt/g" /tmp/core/requirements_test_all.txt && \ + sed -i "s/-r requirements_test_pre_commit.txt/-r \/tmp\/core\/requirements_test_pre_commit.txt/g" /tmp/core/requirements_test.txt && \ + pip3 wheel --wheel-dir /build/addons --no-cache-dir --find-links=/build/core \ + -r /tmp/core/requirements_test_all.txt + +RUN \ + echo "**** install dependencies for hacs.xyz ****" && \ + if [ -z ${HACS_RELEASE+x} ]; then \ + HACS_RELEASE=$(curl -sX GET "https://api.github.com/repos/hacs/integration/releases/latest" \ + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + mkdir -p \ + /build/hacs \ + /tmp/hacs-source && \ + curl -o \ + /tmp/hacs.tar.gz -L \ + "https://github.com/hacs/integration/archive/${HACS_RELEASE}.tar.gz" && \ + tar xf \ + /tmp/hacs.tar.gz -C \ + /tmp/hacs-source --strip-components=1 && \ + pip3 wheel --wheel-dir=/build/hacs --no-cache-dir --find-links=/build/core --find-links=/build/addons \ + -r /tmp/hacs-source/requirements.txt + +RUN \ + mkdir -p \ + /tmp/repo && \ + mv /build/addons/* /tmp/repo/ && \ + mv /build/core/* /tmp/repo/ && \ + mv /build/hacs/* /tmp/repo/ && \ + tar zcf /tmp/wheel-repo-x86_64.tar.gz /tmp/repo + +CMD ["cp", "-avr", "/tmp/wheel-repo-x86_64.tar.gz", "/mnt/"] \ No newline at end of file diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 new file mode 100644 index 0000000..2690e3e --- /dev/null +++ b/Dockerfile.aarch64 @@ -0,0 +1,112 @@ +FROM lsiobase/alpine:arm64v8-3.12 + +# set version label +ARG BUILD_DATE +ARG VERSION +ARG HASS_RELEASE +ARG HACS_RELEASE +LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" +LABEL maintainer="saarg" + +# environment settings +ENV HOME="/tmp" + +# install packages +RUN \ + echo "**** install build packages ****" && \ + apk add --no-cache --virtual=build-dependencies \ + autoconf \ + bluez-deprecated \ + ca-certificates \ + cmake \ + curl \ + cython \ + eudev-dev \ + eudev-libs \ + ffmpeg \ + ffmpeg-dev \ + gcc \ + glib-dev \ + g++ \ + jq \ + libffi-dev \ + libjpeg-turbo \ + libjpeg-turbo-dev \ + libstdc++ \ + libxml2-dev \ + libxslt \ + libxslt-dev \ + make \ + openssl \ + openssl-dev \ + py3-pip \ + py3-wheel \ + python3 \ + python3-dev \ + sudo \ + unzip + +RUN \ + echo "**** find packages to build for homeassistant ****" && \ + mkdir -p \ + /tmp/core && \ + if [ -z ${HASS_RELEASE+x} ]; then \ + HASS_RELEASE=$(curl -sX GET https://api.github.com/repos/home-assistant/core/releases/latest \ + | jq -r .tag_name); \ + fi && \ + curl -o \ + /tmp/core.tar.gz -L \ + "https://github.com/home-assistant/core/archive/${HASS_RELEASE}.tar.gz" && \ + tar xf \ + /tmp/core.tar.gz -C \ + /tmp/core --strip-components=1 + +RUN \ + echo "**** make folders for building wheels and upgrade pip ****" && \ + mkdir -p \ + /build/addons \ + /build/core && \ + pip3 install --no-cache-dir --upgrade \ + pip + +RUN \ + echo "**** build wheels for home assistant core ****" && \ + awk '/# Home Assistant core/,/^$/' /tmp/core/requirements_all.txt > /tmp/requirements_hass.txt && \ + awk '/# homeassistant.components.trend/,/^$/' /tmp/core/requirements_all.txt >> /tmp/requirements_hass.txt && \ + pip3 wheel --wheel-dir=/build/core --no-cache-dir \ + -r /tmp/requirements_hass.txt + +RUN \ + echo "**** build wheels for home assistant addons ****" && \ + sed -i "s/-r requirements_test.txt/-r \/tmp\/core\/requirements_test.txt/g" /tmp/core/requirements_test_all.txt && \ + sed -i "s/-r requirements_test_pre_commit.txt/-r \/tmp\/core\/requirements_test_pre_commit.txt/g" /tmp/core/requirements_test.txt && \ + pip3 wheel --wheel-dir /build/addons --no-cache-dir --find-links=/build/core \ + -r /tmp/core/requirements_test_all.txt + +RUN \ + echo "**** install dependencies for hacs.xyz ****" && \ + if [ -z ${HACS_RELEASE+x} ]; then \ + HACS_RELEASE=$(curl -sX GET "https://api.github.com/repos/hacs/integration/releases/latest" \ + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + mkdir -p \ + /build/hacs \ + /tmp/hacs-source && \ + curl -o \ + /tmp/hacs.tar.gz -L \ + "https://github.com/hacs/integration/archive/${HACS_RELEASE}.tar.gz" && \ + tar xf \ + /tmp/hacs.tar.gz -C \ + /tmp/hacs-source --strip-components=1 && \ + pip3 wheel --wheel-dir=/build/hacs --no-cache-dir --find-links=/build/core --find-links=/build/addons \ + -r /tmp/hacs-source/requirements.txt + +RUN \ + mkdir -p \ + /tmp/repo && \ + mv /build/addons/* /tmp/repo/ && \ + mv /build/core/* /tmp/repo/ && \ + mv /build/hacs/* /tmp/repo/ && \ + tar zcf /tmp/wheel-repo-aarch64.tar.gz /tmp/repo + +CMD ["cp", "-avr", "/tmp/wheel-repo-aarch64.tar.gz", "/mnt/"] \ No newline at end of file diff --git a/Dockerfile.armhf b/Dockerfile.armhf new file mode 100644 index 0000000..b7d55a5 --- /dev/null +++ b/Dockerfile.armhf @@ -0,0 +1,112 @@ +FROM lsiobase/alpine:arm32v7-3.12 + +# set version label +ARG BUILD_DATE +ARG VERSION +ARG HASS_RELEASE +ARG HACS_RELEASE +LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" +LABEL maintainer="saarg" + +# environment settings +ENV HOME="/tmp" + +# install packages +RUN \ + echo "**** install build packages ****" && \ + apk add --no-cache --virtual=build-dependencies \ + autoconf \ + bluez-deprecated \ + ca-certificates \ + cmake \ + curl \ + cython \ + eudev-dev \ + eudev-libs \ + ffmpeg \ + ffmpeg-dev \ + gcc \ + glib-dev \ + g++ \ + jq \ + libffi-dev \ + libjpeg-turbo \ + libjpeg-turbo-dev \ + libstdc++ \ + libxml2-dev \ + libxslt \ + libxslt-dev \ + make \ + openssl \ + openssl-dev \ + py3-pip \ + py3-wheel \ + python3 \ + python3-dev \ + sudo \ + unzip + +RUN \ + echo "**** find packages to build for homeassistant ****" && \ + mkdir -p \ + /tmp/core && \ + if [ -z ${HASS_RELEASE+x} ]; then \ + HASS_RELEASE=$(curl -sX GET https://api.github.com/repos/home-assistant/core/releases/latest \ + | jq -r .tag_name); \ + fi && \ + curl -o \ + /tmp/core.tar.gz -L \ + "https://github.com/home-assistant/core/archive/${HASS_RELEASE}.tar.gz" && \ + tar xf \ + /tmp/core.tar.gz -C \ + /tmp/core --strip-components=1 + +RUN \ + echo "**** make folders for building wheels and upgrade pip ****" && \ + mkdir -p \ + /build/addons \ + /build/core && \ + pip3 install --no-cache-dir --upgrade \ + pip + +RUN \ + echo "**** build wheels for home assistant core ****" && \ + awk '/# Home Assistant core/,/^$/' /tmp/core/requirements_all.txt > /tmp/requirements_hass.txt && \ + awk '/# homeassistant.components.trend/,/^$/' /tmp/core/requirements_all.txt >> /tmp/requirements_hass.txt && \ + pip3 wheel --wheel-dir=/build/core --no-cache-dir \ + -r /tmp/requirements_hass.txt + +RUN \ + echo "**** build wheels for home assistant addons ****" && \ + sed -i "s/-r requirements_test.txt/-r \/tmp\/core\/requirements_test.txt/g" /tmp/core/requirements_test_all.txt && \ + sed -i "s/-r requirements_test_pre_commit.txt/-r \/tmp\/core\/requirements_test_pre_commit.txt/g" /tmp/core/requirements_test.txt && \ + pip3 wheel --wheel-dir /build/addons --no-cache-dir --find-links=/build/core \ + -r /tmp/core/requirements_test_all.txt + +RUN \ + echo "**** install dependencies for hacs.xyz ****" && \ + if [ -z ${HACS_RELEASE+x} ]; then \ + HACS_RELEASE=$(curl -sX GET "https://api.github.com/repos/hacs/integration/releases/latest" \ + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + mkdir -p \ + /build/hacs \ + /tmp/hacs-source && \ + curl -o \ + /tmp/hacs.tar.gz -L \ + "https://github.com/hacs/integration/archive/${HACS_RELEASE}.tar.gz" && \ + tar xf \ + /tmp/hacs.tar.gz -C \ + /tmp/hacs-source --strip-components=1 && \ + pip3 wheel --wheel-dir=/build/hacs --no-cache-dir --find-links=/build/core --find-links=/build/addons \ + -r /tmp/hacs-source/requirements.txt + +RUN \ + mkdir -p \ + /tmp/repo && \ + mv /build/addons/* /tmp/repo/ && \ + mv /build/core/* /tmp/repo/ && \ + mv /build/hacs/* /tmp/repo/ && \ + tar zcf /tmp/wheel-repo-armhf.tar.gz /tmp/repo + +CMD ["cp", "-avr", "/tmp/wheel-repo-armhf.tar.gz", "/mnt/"] \ No newline at end of file diff --git a/README.md b/README.md index f4737fc..e824848 100644 --- a/README.md +++ b/README.md @@ -1 +1,5 @@ -# hass-wheel-builder \ No newline at end of file +THIS IS NOT SOMETHING FOR PUBLIC USE + +YOU HAVE BEEN WARNED !!!! + +HERE BE DRAGONS \ No newline at end of file