16 Commits

Author SHA1 Message Date
ezkrg
397d549e6a change release process 2021-09-23 15:01:21 +02:00
ezkrg
c2ad51d77f separate piplines 2021-09-22 23:50:08 +02:00
ezkrg
516d419eff trigger notification instead when 2021-09-22 23:15:20 +02:00
Attila Szabó
9b07aef84c Merge pull request #26 from ezkrg/debian
debian based image build
2021-09-21 19:58:05 +02:00
ezkrg
1b80fa0351 delete whatsapp from alpine build 2021-09-21 15:10:03 +02:00
ezkrg
dcb3c67bfd sign drone 2021-09-21 15:07:18 +02:00
ezkrg
a8b8689093 forgot that same pipeline logs zero running time 2021-09-21 15:02:38 +02:00
ezkrg
5ad6b29d01 merge to one pipeline 2021-09-21 14:56:44 +02:00
ezkrg
762b4db2df change cache tag 2021-09-21 14:54:54 +02:00
ezkrg
5de627e3d0 create debian build and add whatsapp 2021-09-21 14:46:49 +02:00
ezkrg
c0a9fea085 try using whatsapp 2021-09-18 22:04:07 +02:00
ezkrg
c7e8cf3f4e use olm library from distrib 2021-09-17 14:24:02 +02:00
Attila Szabó
f4df9946a6 Merge pull request #25 from ezkrg/arm-build
arm build
2021-09-17 14:13:16 +02:00
ezkrg
36f7b6c351 build test tag 2021-09-17 14:09:00 +02:00
ezkrg
0aebc7f867 not tty 2021-09-17 14:03:17 +02:00
ezkrg
8c519fc35c arm build 2021-09-17 14:00:24 +02:00
5 changed files with 568 additions and 28 deletions

View File

@@ -1,7 +1,7 @@
--- ---
kind: pipeline kind: pipeline
type: docker type: docker
name: docker name: alpine
steps: steps:
- name: docker - name: docker
@@ -19,14 +19,17 @@ steps:
from_secret: DHP from_secret: DHP
DOCKER_HOST: tcp://docker:2375 DOCKER_HOST: tcp://docker:2375
commands: commands:
- sleep 5 - while ! docker info; do sleep 1; done
- docker buildx create --use --name docker --node docker --platform linux/amd64 --driver docker-container $DOCKER_HOST - docker run --rm --privileged tonistiigi/binfmt --install all
- docker buildx create --use --name docker --node docker --platform linux/amd64,linux/arm64,linux/armhf --driver docker-container $DOCKER_HOST
- echo $PASSWORD | docker login --username $USER --password-stdin - echo $PASSWORD | docker login --username $USER --password-stdin
- docker buildx build --load --cache-from ezkrg/cache:bitlbee-libpurple --cache-to ezkrg/cache:bitlbee-libpurple -t ezkrg/bitlbee-libpurple:test --platform linux/amd64 . - docker buildx build --push --cache-from ezkrg/bitlbee-libpurple:cache --cache-to ezkrg/bitlbee-libpurple:cache -t ezkrg/bitlbee-libpurple:test --platform linux/amd64,linux/arm64,linux/armhf .
- docker push ezkrg/bitlbee-libpurple:test when:
event:
- push
- name: release - name: latest
image: docker:stable image: ezkrg/buildx:latest
environment: environment:
USER: USER:
from_secret: DHU from_secret: DHU
@@ -34,11 +37,11 @@ steps:
from_secret: DHP from_secret: DHP
DOCKER_HOST: tcp://docker:2375 DOCKER_HOST: tcp://docker:2375
commands: commands:
- while ! docker info; do sleep 1; done
- docker run --rm --privileged tonistiigi/binfmt --install all
- docker buildx create --use --name docker --node docker --platform linux/amd64,linux/arm64,linux/armhf --driver docker-container $DOCKER_HOST
- echo $PASSWORD | docker login --username $USER --password-stdin - echo $PASSWORD | docker login --username $USER --password-stdin
- docker tag ezkrg/bitlbee-libpurple:test ezkrg/bitlbee-libpurple:$DRONE_TAG - docker buildx build --push --cache-from ezkrg/bitlbee-libpurple:cache --cache-to ezkrg/bitlbee-libpurple:cache -t ezkrg/bitlbee-libpurple:$DRONE_TAG -t ezkrg/bitlbee-libpurple:latest --platform linux/amd64,linux/arm64,linux/armhf .
- docker push ezkrg/bitlbee-libpurple:$DRONE_TAG
- docker tag ezkrg/bitlbee-libpurple:test ezkrg/bitlbee-libpurple:latest
- docker push ezkrg/bitlbee-libpurple:latest
when: when:
event: event:
- tag - tag
@@ -46,6 +49,55 @@ steps:
--- ---
kind: pipeline kind: pipeline
type: docker type: docker
name: debian
steps:
- name: docker
image: docker:stable-dind
privileged: true
detach: true
command: [ "dockerd", "--host=tcp://0.0.0.0:2375" ]
- name: test
image: ezkrg/buildx:latest
environment:
USER:
from_secret: DHU
PASSWORD:
from_secret: DHP
DOCKER_HOST: tcp://docker:2375
commands:
- while ! docker info; do sleep 1; done
- docker run --rm --privileged tonistiigi/binfmt --install all
- docker buildx create --use --name docker --node docker --platform linux/amd64,linux/arm64,linux/armhf --driver docker-container $DOCKER_HOST
- echo $PASSWORD | docker login --username $USER --password-stdin
- docker buildx build --push --cache-from ezkrg/bitlbee-libpurple:debian-cache --cache-to ezkrg/bitlbee-libpurple:debian-cache -t ezkrg/bitlbee-libpurple:debian-test --platform linux/amd64,linux/arm64,linux/armhf -f Dockerfile.debian .
when:
event:
- push
- name: latest
image: ezkrg/buildx:latest
environment:
USER:
from_secret: DHU
PASSWORD:
from_secret: DHP
DOCKER_HOST: tcp://docker:2375
commands:
- while ! docker info; do sleep 1; done
- docker run --rm --privileged tonistiigi/binfmt --install all
- docker buildx create --use --name docker --node docker --platform linux/amd64,linux/arm64,linux/armhf --driver docker-container $DOCKER_HOST
- echo $PASSWORD | docker login --username $USER --password-stdin
- docker buildx build --push --cache-from ezkrg/bitlbee-libpurple:debian-cache --cache-to ezkrg/bitlbee-libpurple:debian-cache -t ezkrg/bitlbee-libpurple:debian-$DRONE_TAG -t ezkrg/bitlbee-libpurple:debian-latest --platform linux/amd64,linux/arm64,linux/armhf -f Dockerfile.debian .
when:
event:
- tag
---
kind: pipeline
type: docker
name: notification name: notification
clone: clone:
@@ -53,7 +105,7 @@ clone:
steps: steps:
- name: telegram - name: telegram
image: appleboy/drone-telegram:1.3.4 image: appleboy/drone-telegram:1.3.10
failure: ignore failure: ignore
settings: settings:
token: token:
@@ -63,14 +115,20 @@ steps:
message: | message: |
*{{commit.author}} ({{commit.email}})* *{{commit.author}} ({{commit.email}})*
*{{repo.namespace}}/{{repo.name}}* *{{repo.namespace}}/{{repo.name}}*
[Pipeline #{{build.number}} has {{#success build.status}}passed{{else}}failed{{/success}} in {{duration build.started build.finished}}]({{build.link}}) {{#success build.status}}✅{{else}}❌{{/success}} [Pipeline #{{build.number}} has {{#success build.status}}passed{{else}}failed{{/success}} in {{since build.started}}]({{build.link}}) {{#success build.status}}✅{{else}}❌{{/success}}
*Branch:* [{{commit.branch}}](https://github.com/{{repo.namespace}}/{{repo.name}}/commits/{{commit.branch}}) *Commit:* [{{commit.message}}]({{commit.link}}) *Branch:* [{{commit.branch}}](https://github.com/{{repo.namespace}}/{{repo.name}}/commits/{{commit.branch}}) *Commit:* [{{commit.message}}]({{commit.link}})
trigger:
status:
- success
- failure
depends_on: depends_on:
- docker - alpine
- debian
--- ---
kind: signature kind: signature
hmac: 9c778c50b9cb687fe3e1614048c082db18c4fe6f531aba5c04f0ec950a2814d1 hmac: e51bb8ccb6f602e0f02e6bd0e9dfd8456c4655c4bb299fc64a10c8b162294544
... ...

View File

@@ -6,8 +6,8 @@ ARG BITLBEE_VERSION=3.6
RUN apk add --no-cache --update \ RUN apk add --no-cache --update \
bash shadow build-base git python2 autoconf automake libtool mercurial intltool flex \ bash shadow build-base git python2 autoconf automake libtool mercurial intltool flex \
glib-dev openssl-dev pidgin-dev json-glib-dev libgcrypt-dev zlib-dev libwebp-dev \ glib-dev openssl-dev pidgin-dev json-glib-dev libgcrypt-dev zlib-dev libwebp-dev libpng-dev \
libpng-dev protobuf-c-dev libxml2-dev discount-dev sqlite-dev http-parser-dev libotr-dev \ protobuf-c-dev libxml2-dev discount-dev sqlite-dev http-parser-dev libotr-dev olm-dev \
&& cd /tmp \ && cd /tmp \
&& git clone -n https://github.com/bitlbee/bitlbee.git \ && git clone -n https://github.com/bitlbee/bitlbee.git \
&& cd bitlbee \ && cd bitlbee \
@@ -264,27 +264,21 @@ RUN echo MASTODON=${MASTODON} > /tmp/status \
FROM bitlbee-build as matrix-build FROM bitlbee-build as matrix-build
ARG MATRIX=1 ARG MATRIX=1
ARG OLM_VERSION=3.2.4
ARG MATRIX_VERSION=88f9558 ARG MATRIX_VERSION=88f9558
COPY matrix-e2e.c.patch /tmp/matrix-e2e.c.patch
RUN echo MATRIX=${MATRIX} > /tmp/status \ RUN echo MATRIX=${MATRIX} > /tmp/status \
&& if [ ${MATRIX} -eq 1 ]; \ && if [ ${MATRIX} -eq 1 ]; \
then cd /tmp \ then cd /tmp \
&& git clone -n https://gitlab.matrix.org/matrix-org/olm.git \
&& cd olm \
&& git checkout ${OLM_VERSION} \
&& make \
&& make install \
&& strip /usr/local/lib/libolm.so.${OLM_VERSION} \
&& cd /tmp \
&& git clone -n https://github.com/matrix-org/purple-matrix \ && git clone -n https://github.com/matrix-org/purple-matrix \
&& cd purple-matrix \ && cd purple-matrix \
&& git checkout ${MATRIX_VERSION} \ && git checkout ${MATRIX_VERSION} \
&& if [ $(uname -m) == "armv7l" ]; then patch < ../matrix-e2e.c.patch; fi \
&& make \ && make \
&& make install \ && make install \
&& strip /usr/lib/purple-2/libmatrix.so; \ && strip /usr/lib/purple-2/libmatrix.so; \
else mkdir -p /usr/lib/purple-2 \ else mkdir -p /usr/lib/purple-2 \
&& ln -sf /nowhere /usr/local/lib/libolm.so \
&& ln -sf /nowhere /usr/lib/purple-2/libmatrix.so; \ && ln -sf /nowhere /usr/lib/purple-2/libmatrix.so; \
fi fi
@@ -385,7 +379,6 @@ COPY --from=mastodon-build /usr/lib/bitlbee/mastodon.la /tmp/usr/lib/bitlbee/mas
COPY --from=mastodon-build /usr/share/bitlbee/mastodon-help.txt /tmp/usr/share/bitlbee/mastodon-help.txt COPY --from=mastodon-build /usr/share/bitlbee/mastodon-help.txt /tmp/usr/share/bitlbee/mastodon-help.txt
COPY --from=mastodon-build /tmp/status /tmp/plugin/mastodon COPY --from=mastodon-build /tmp/status /tmp/plugin/mastodon
COPY --from=matrix-build /usr/local/lib/libolm.so /tmp/usr/local/lib/libolm.so.3
COPY --from=matrix-build /usr/lib/purple-2/libmatrix.so /tmp/usr/lib/purple-2/libmatrix.so COPY --from=matrix-build /usr/lib/purple-2/libmatrix.so /tmp/usr/lib/purple-2/libmatrix.so
COPY --from=matrix-build /tmp/status /tmp/plugin/matrix COPY --from=matrix-build /tmp/status /tmp/plugin/matrix
@@ -424,7 +417,7 @@ RUN addgroup -g 101 -S bitlbee \
&& if [ ${SIGNAL} -eq 1 ]; then PKGS="${PKGS} libmagic"; fi \ && if [ ${SIGNAL} -eq 1 ]; then PKGS="${PKGS} libmagic"; fi \
&& if [ ${SIPE} -eq 1 ]; then PKGS="${PKGS} libxml2"; fi \ && if [ ${SIPE} -eq 1 ]; then PKGS="${PKGS} libxml2"; fi \
&& if [ ${ROCKETCHAT} -eq 1 ]; then PKGS="${PKGS} discount"; fi \ && if [ ${ROCKETCHAT} -eq 1 ]; then PKGS="${PKGS} discount"; fi \
&& if [ ${MATRIX} -eq 1 ]; then PKGS="${PKGS} sqlite http-parser"; fi \ && if [ ${MATRIX} -eq 1 ]; then PKGS="${PKGS} sqlite http-parser olm"; fi \
&& apk add --no-cache --update ${PKGS} \ && apk add --no-cache --update ${PKGS} \
&& rm /plugins && rm /plugins

468
Dockerfile.debian Normal file
View File

@@ -0,0 +1,468 @@
FROM debian:bullseye-slim as base-image
FROM base-image as bitlbee-build
ARG BITLBEE_VERSION=3.6
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential git python autoconf automake libtool intltool flex libglib2.0-dev \
libssl-dev libpurple-dev libjson-glib-dev libgcrypt20-dev libotr5-dev \
&& cd /tmp \
&& git clone -n https://github.com/bitlbee/bitlbee.git \
&& cd bitlbee \
&& git checkout ${BITLBEE_VERSION} \
&& ./configure --purple=1 --otr=plugin --ssl=openssl --prefix=/usr --etcdir=/etc/bitlbee \
&& make \
&& make install-bin \
&& make install-doc \
&& make install-dev \
&& make install-etc \
&& strip /usr/sbin/bitlbee \
&& touch /nowhere
# ---
FROM bitlbee-build as otr-install
ARG OTR=1
RUN echo OTR=${OTR} > /tmp/status \
&& if [ ${OTR} -eq 1 ]; \
then cd /tmp/bitlbee \
&& make install-plugin-otr; \
else mkdir -p /usr/lib/bitlbee \
&& ln -sf /nowhere /usr/lib/bitlbee/otr.so; \
fi
# ---
FROM bitlbee-build as facebook-build
ARG FACEBOOK=1
ARG FACEBOOK_VERSION=v1.2.2
RUN echo FACEBOOK=${FACEBOOK} > /tmp/status \
&& if [ ${FACEBOOK} -eq 1 ]; \
then cd /tmp \
&& git clone -n https://github.com/bitlbee/bitlbee-facebook.git \
&& cd bitlbee-facebook \
&& git checkout ${FACEBOOK_VERSION} \
&& ./autogen.sh \
&& make \
&& make install \
&& strip /usr/lib/bitlbee/facebook.so; \
else mkdir -p /usr/lib/bitlbee \
&& ln -sf /nowhere /usr/lib/bitlbee/facebook.so \
&& ln -sf /nowhere /usr/lib/bitlbee/facebook.la; \
fi
# ---
FROM bitlbee-build as steam-build
ARG STEAM=1
ARG STEAM_VERSION=a6444d2
RUN echo STEAM=${STEAM} > /tmp/status \
&& if [ ${STEAM} -eq 1 ]; \
then cd /tmp \
&& git clone -n https://github.com/bitlbee/bitlbee-steam.git \
&& cd bitlbee-steam \
&& git checkout ${STEAM_VERSION} \
&& ./autogen.sh \
&& make \
&& make install \
&& strip /usr/lib/bitlbee/steam.so; \
else mkdir -p /usr/lib/bitlbee \
&& ln -sf /nowhere /usr/lib/bitlbee/steam.so \
&& ln -sf /nowhere /usr/lib/bitlbee/steam.la; \
fi
# ---
FROM bitlbee-build as skypeweb-build
ARG SKYPEWEB=1
ARG SKYPEWEB_VERSION=c4906b8
RUN echo SKYPEWEB=${SKYPEWEB} > /tmp/status \
&& if [ ${SKYPEWEB} -eq 1 ]; \
then cd /tmp \
&& git clone -n https://github.com/EionRobb/skype4pidgin.git \
&& cd skype4pidgin \
&& git checkout ${SKYPEWEB_VERSION} \
&& cd skypeweb \
&& make \
&& make install \
&& strip /usr/lib/purple-2/libskypeweb.so; \
else mkdir -p /usr/lib/purple-2 \
&& ln -sf /nowhere /usr/lib/purple-2/libskypeweb.so; \
fi
# ---
FROM bitlbee-build as telegram-build
ARG TELEGRAM=1
ARG TELEGRAM_VERSION=v1.4.3
RUN echo TELEGRAM=${TELEGRAM} > /tmp/status \
&& if [ ${TELEGRAM} -eq 1 ]; \
then cd /tmp \
&& apt-get update \
&& apt-get install -y --no-install-recommends zlib1g-dev libwebp-dev libpng-dev \
&& git clone -n https://github.com/majn/telegram-purple \
&& cd telegram-purple \
&& git checkout ${TELEGRAM_VERSION} \
&& git submodule update --init --recursive \
&& ./configure \
&& make \
&& make install \
&& strip /usr/lib/purple-2/telegram-purple.so; \
else mkdir -p /usr/lib/purple-2 \
&& ln -sf /nowhere /usr/lib/purple-2/telegram-purple.so \
&& ln -sf /nowhere /etc/telegram-purple \
&& ln -sf /nowhere /usr/local/share/locale; \
fi
# ---
FROM bitlbee-build as hangouts-build
ARG HANGOUTS=1
ARG HANGOUTS_VERSION=e8c8088
RUN echo HANGOUTS=${HANGOUTS} > /tmp/status \
&& if [ ${HANGOUTS} -eq 1 ]; \
then cd /tmp \
&& apt-get update \
&& apt-get install -y --no-install-recommends libprotobuf-c-dev protobuf-c-compiler \
&& git clone -n https://github.com/EionRobb/purple-hangouts.git \
&& cd purple-hangouts \
&& git checkout ${HANGOUTS_VERSION} \
&& make \
&& make install \
&& strip /usr/lib/purple-2/libhangouts.so; \
else mkdir -p /usr/lib/purple-2 \
&& ln -sf /nowhere /usr/lib/purple-2/libhangouts.so; \
fi
# ---
FROM bitlbee-build as slack-build
ARG SLACK=1
ARG SLACK_VERSION=e0c73ae
SHELL [ "/bin/bash", "-c" ]
RUN echo SLACK=${SLACK} > /tmp/status \
&& if [ ${SLACK} -eq 1 ]; \
then cd /tmp \
&& git clone -n https://github.com/dylex/slack-libpurple.git \
&& cd slack-libpurple \
&& git checkout ${SLACK_VERSION} \
&& make \
&& install -d /usr/share/pixmaps/pidgin/protocols/{16,22,48} \
&& make install \
&& strip /usr/lib/purple-2/libslack.so; \
else mkdir -p /usr/lib/purple-2 \
&& ln -sf /nowhere /usr/lib/purple-2/libslack.so; \
fi
# ---
FROM bitlbee-build as sipe-build
ARG SIPE=1
ARG SIPE_VERSION=1.25.0
RUN echo SIPE=${SIPE} > /tmp/status \
&& if [ ${SIPE} -eq 1 ]; \
then cd /tmp \
&& apt-get update \
&& apt-get install -y --no-install-recommends libxml2-dev autopoint \
&& git clone -n https://repo.or.cz/siplcs.git \
&& cd siplcs \
&& git checkout ${SIPE_VERSION} \
&& ./autogen.sh \
&& ./configure --prefix=/usr \
&& make \
&& make install \
&& strip /usr/lib/purple-2/libsipe.so; \
else mkdir -p /usr/lib/purple-2 \
&& ln -sf /nowhere /usr/lib/purple-2/libsipe.so \
&& ln -sf /nowhere /usr/lib/purple-2/libsipe.la \
&& ln -sf /nowhere /usr/share/locale; \
fi
# ---
FROM bitlbee-build as discord-build
ARG DISCORD=1
ARG DISCORD_VERSION=0.4.3
RUN echo DISCORD=${DISCORD} > /tmp/status \
&& if [ ${DISCORD} -eq 1 ]; \
then cd /tmp \
&& git clone -n https://github.com/sm00th/bitlbee-discord.git \
&& cd bitlbee-discord \
&& git checkout ${DISCORD_VERSION} \
&& ./autogen.sh \
&& ./configure --prefix=/usr \
&& make \
&& make install \
&& strip /usr/lib/bitlbee/discord.so; \
else mkdir -p /usr/lib/bitlbee \
&& ln -sf /nowhere /usr/lib/bitlbee/discord.so \
&& ln -sf /nowhere /usr/lib/bitlbee/discord.la \
&& ln -sf /nowhere /usr/share/bitlbee/discord-help.txt; \
fi
# ---
FROM bitlbee-build as rocketchat-build
ARG ROCKETCHAT=1
ARG ROCKETCHAT_VERSION=62090bc
RUN echo ROCKETCHAT=${ROCKETCHAT} > /tmp/status \
&& if [ ${ROCKETCHAT} -eq 1 ]; \
then cd /tmp \
&& apt-get update \
&& apt-get install -y --no-install-recommends libmarkdown2-dev \
&& git clone -n https://github.com/EionRobb/purple-rocketchat.git \
&& cd purple-rocketchat \
&& git checkout ${ROCKETCHAT_VERSION} \
&& make \
&& make install \
&& strip /usr/lib/purple-2/librocketchat.so; \
else mkdir -p /usr/lib/purple-2 \
&& ln -sf /nowhere /usr/lib/purple-2/librocketchat.so; \
fi
# ---
FROM bitlbee-build as mastodon-build
ARG MASTODON=1
ARG MASTODON_VERSION=v1.4.4
RUN echo MASTODON=${MASTODON} > /tmp/status \
&& if [ ${MASTODON} -eq 1 ]; \
then cd /tmp \
&& git clone -n https://github.com/kensanata/bitlbee-mastodon \
&& cd bitlbee-mastodon \
&& git checkout ${MASTODON_VERSION} \
&& sh ./autogen.sh \
&& ./configure \
&& make \
&& make install \
&& strip /usr/lib/bitlbee/mastodon.so; \
else mkdir -p /usr/lib/bitlbee \
&& ln -sf /nowhere /usr/lib/bitlbee/mastodon.so \
&& ln -sf /nowhere /usr/lib/bitlbee/mastodon.la \
&& ln -sf /nowhere /usr/share/bitlbee/mastodon-help.txt; \
fi
# ---
FROM bitlbee-build as matrix-build
ARG MATRIX=1
ARG MATRIX_VERSION=88f9558
SHELL [ "/bin/bash", "-c" ]
COPY matrix-e2e.c.patch /tmp/matrix-e2e.c.patch
RUN echo MATRIX=${MATRIX} > /tmp/status \
&& if [ ${MATRIX} -eq 1 ]; \
then cd /tmp \
&& apt-get update \
&& apt-get install -y --no-install-recommends libsqlite3-dev libhttp-parser-dev libolm-dev patch \
&& git clone -n https://github.com/matrix-org/purple-matrix \
&& cd purple-matrix \
&& git checkout ${MATRIX_VERSION} \
&& if [ $(uname -m) == "armv7l" ]; then patch < ../matrix-e2e.c.patch; fi \
&& make \
&& make install \
&& strip /usr/lib/purple-2/libmatrix.so; \
else mkdir -p /usr/lib/purple-2 \
&& ln -sf /nowhere /usr/lib/purple-2/libmatrix.so; \
fi
# ---
FROM bitlbee-build as signald-build
ARG SIGNAL=1
ARG SIGNAL_VERSION=v0.8.1
RUN echo SIGNAL=${SIGNAL} > /tmp/status \
&& if [ ${SIGNAL} -eq 1 ]; \
then cd /tmp \
&& apt-get update \
&& apt-get install -y --no-install-recommends libmagic-dev \
&& git clone -n https://github.com/hoehermann/libpurple-signald \
&& cd libpurple-signald \
&& git checkout ${SIGNAL_VERSION} \
&& git submodule init \
&& git submodule update \
&& make SUPPORT_EXTERNAL_ATTACHMENTS=1 \
&& make install \
&& strip /usr/lib/purple-2/libsignald.so; \
else mkdir -p /usr/lib/purple-2 \
&& ln -sf /nowhere /usr/lib/purple-2/libsignald.so; \
fi
# ---
FROM bitlbee-build as icyque-build
ARG ICYQUE=1
ARG ICYQUE_VERSION=4fc08a0
RUN echo ICYQUE=${ICYQUE} > /tmp/status \
&& if [ ${ICYQUE} -eq 1 ]; \
then cd /tmp \
&& git clone -n https://github.com/EionRobb/icyque.git \
&& cd icyque \
&& git checkout ${ICYQUE_VERSION} \
&& make \
&& make install \
&& strip /usr/lib/purple-2/libicyque.so; \
else mkdir -p /usr/lib/purple-2 \
&& ln -sf /nowhere /usr/lib/purple-2/libicyque.so; \
fi
# ---
FROM bitlbee-build as whatsapp-build
ARG WHATSAPP=1
ARG WHATSAPP_VERSION=438fae6
RUN echo WHATSAPP=${WHATSAPP} > /tmp/status \
&& if [ ${WHATSAPP} -eq 1 ]; \
then cd /tmp \
&& apt-get update \
&& apt-get install -y --no-install-recommends golang-go \
&& git clone -n https://github.com/hoehermann/purple-gowhatsapp.git \
&& cd purple-gowhatsapp \
&& git checkout ${WHATSAPP_VERSION} \
&& make \
&& make install \
&& strip /usr/lib/purple-2/libgowhatsapp.so; \
else mkdir -p /usr/lib/purple-2 \
&& ln -sf /nowhere /usr/lib/purple-2/libgowhatsapp.so; \
fi
# ---
FROM base-image as bitlbee-plugins
COPY --from=bitlbee-build /usr/sbin/bitlbee /tmp/usr/sbin/bitlbee
COPY --from=bitlbee-build /usr/share/man/man8/bitlbee.8 /tmp/usr/share/man/man8/bitlbee.8
COPY --from=bitlbee-build /usr/share/man/man5/bitlbee.conf.5 /tmp/usr/share/man/man5/bitlbee.conf.5
COPY --from=bitlbee-build /usr/share/bitlbee /tmp/usr/share/bitlbee
COPY --from=bitlbee-build /usr/lib/pkgconfig/bitlbee.pc /tmp/usr/lib/pkgconfig/bitlbee.pc
COPY --from=bitlbee-build /etc/bitlbee /tmp/etc/bitlbee
COPY --from=otr-install /usr/lib/bitlbee/otr.so /tmp/usr/lib/bitlbee/otr.so
COPY --from=otr-install /tmp/status /tmp/plugin/otr
COPY --from=facebook-build /usr/lib/bitlbee/facebook.so /tmp/usr/lib/bitlbee/facebook.so
COPY --from=facebook-build /usr/lib/bitlbee/facebook.la /tmp/usr/lib/bitlbee/facebook.la
COPY --from=facebook-build /tmp/status /tmp/plugin/facebook
COPY --from=steam-build /usr/lib/bitlbee/steam.so /tmp/usr/lib/bitlbee/steam.so
COPY --from=steam-build /usr/lib/bitlbee/steam.la /tmp/usr/lib/bitlbee/steam.la
COPY --from=steam-build /tmp/status /tmp/plugin/steam
COPY --from=skypeweb-build /usr/lib/purple-2/libskypeweb.so /tmp/usr/lib/purple-2/libskypeweb.so
COPY --from=skypeweb-build /tmp/status /tmp/plugin/skypeweb
COPY --from=telegram-build /usr/lib/purple-2/telegram-purple.so /tmp/usr/lib/purple-2/telegram-purple.so
COPY --from=telegram-build /etc/telegram-purple /tmp/etc/telegram-purple
COPY --from=telegram-build /usr/local/share/locale /tmp/usr/local/share/locale
COPY --from=telegram-build /tmp/status /tmp/plugin/telegram
COPY --from=hangouts-build /usr/lib/purple-2/libhangouts.so /tmp/usr/lib/purple-2/libhangouts.so
COPY --from=hangouts-build /tmp/status /tmp/plugin/hangouts
COPY --from=slack-build /usr/lib/purple-2/libslack.so /tmp/usr/lib/purple-2/libslack.so
COPY --from=slack-build /tmp/status /tmp/plugin/slack
COPY --from=sipe-build /usr/lib/purple-2/libsipe.so /tmp/usr/lib/purple-2/libsipe.so
COPY --from=sipe-build /usr/lib/purple-2/libsipe.la /tmp/usr/lib/purple-2/libsipe.la
COPY --from=sipe-build /usr/share/locale /tmp/usr/share/locale
COPY --from=sipe-build /tmp/status /tmp/plugin/sipe
COPY --from=discord-build /usr/lib/bitlbee/discord.so /tmp/usr/lib/bitlbee/discord.so
COPY --from=discord-build /usr/lib/bitlbee/discord.la /tmp/usr/lib/bitlbee/discord.la
COPY --from=discord-build /usr/share/bitlbee/discord-help.txt /tmp/usr/share/bitlbee/discord-help.txt
COPY --from=discord-build /tmp/status /tmp/plugin/discord
COPY --from=rocketchat-build /usr/lib/purple-2/librocketchat.so /tmp/usr/lib/purple-2/librocketchat.so
COPY --from=rocketchat-build /tmp/status /tmp/plugin/rocketchat
COPY --from=mastodon-build /usr/lib/bitlbee/mastodon.so /tmp/usr/lib/bitlbee/mastodon.so
COPY --from=mastodon-build /usr/lib/bitlbee/mastodon.la /tmp/usr/lib/bitlbee/mastodon.la
COPY --from=mastodon-build /usr/share/bitlbee/mastodon-help.txt /tmp/usr/share/bitlbee/mastodon-help.txt
COPY --from=mastodon-build /tmp/status /tmp/plugin/mastodon
COPY --from=matrix-build /usr/lib/purple-2/libmatrix.so /tmp/usr/lib/purple-2/libmatrix.so
COPY --from=matrix-build /tmp/status /tmp/plugin/matrix
COPY --from=signald-build /usr/lib/purple-2/libsignald.so /tmp/usr/lib/purple-2/libsignald.so
COPY --from=signald-build /tmp/status /tmp/plugin/signald
COPY --from=icyque-build /usr/lib/purple-2/libicyque.so /tmp/usr/lib/purple-2/libicyque.so
COPY --from=icyque-build /tmp/status /tmp/plugin/icyque
COPY --from=whatsapp-build /usr/lib/purple-2/libgowhatsapp.so /tmp/usr/lib/purple-2/libgowhatsapp.so
COPY --from=whatsapp-build /tmp/status /tmp/plugin/whatsapp
RUN apt-get update \
&& apt-get install -y --no-install-recommends findutils \
&& find /tmp/ -type f -empty -delete \
&& find /tmp/ -type d -empty -delete \
&& cat /tmp/plugin/* > /tmp/plugins \
&& rm -rf /tmp/plugin
# ---
FROM base-image as bitlbee-libpurple
COPY --from=bitlbee-plugins /tmp/ /
ARG PKGS="tzdata libglib2.0-0 libssl1.1 libpurple0 libtcl8.6 libtk8.6"
SHELL [ "/bin/bash", "-c" ]
RUN groupadd -g 101 -r bitlbee \
&& useradd -u 101 -r -g bitlbee -m -d /var/lib/bitlbee bitlbee \
&& install -d -m 750 -o bitlbee -g bitlbee /var/lib/bitlbee \
&& source /plugins \
&& if [ ${OTR} -eq 1 ]; then PKGS="${PKGS} libotr5"; fi \
&& if [ ${FACEBOOK} -eq 1 ] || [ ${SKYPEWEB} -eq 1 ] || [ ${HANGOUTS} -eq 1 ] \
|| [ ${ROCKETCHAT} -eq 1 ] || [ ${MATRIX} -eq 1 ] || [ ${SIGNAL} -eq 1 ] \
|| [ ${ICYQUE} -eq 1 ]; then PKGS="${PKGS} libjson-glib-1.0-0"; fi \
&& if [ ${STEAM} -eq 1 ] || [ ${TELEGRAM} -eq 1 ] || [ ${MATRIX} -eq 1 ]; then PKGS="${PKGS} libgcrypt20"; fi \
&& if [ ${TELEGRAM} -eq 1 ]; then PKGS="${PKGS} zlib1g libwebp6 libpng16-16"; fi \
&& if [ ${HANGOUTS} -eq 1 ] || [ ${SIGNAL} -eq 1 ]; then PKGS="${PKGS} libprotobuf-c1"; fi \
&& if [ ${SIGNAL} -eq 1 ]; then PKGS="${PKGS} libmagic1"; fi \
&& if [ ${SIPE} -eq 1 ]; then PKGS="${PKGS} libxml2"; fi \
&& if [ ${ROCKETCHAT} -eq 1 ]; then PKGS="${PKGS} libmarkdown2"; fi \
&& if [ ${MATRIX} -eq 1 ]; then PKGS="${PKGS} libsqlite3-0 libhttp-parser2.9 libolm2"; fi \
&& apt-get update \
&& apt-get install -y --no-install-recommends ${PKGS} \
&& apt-get clean \
&& rm /plugins
EXPOSE 6667
CMD [ "/usr/sbin/bitlbee", "-F", "-n", "-u", "bitlbee" ]

View File

@@ -14,6 +14,7 @@ This docker image includes bitlbee with a bunch of useful plugins:
- [matrix](https://github.com/matrix-org/purple-matrix) - [matrix](https://github.com/matrix-org/purple-matrix)
- [signal](https://github.com/hoehermann/libpurple-signald) - [signal](https://github.com/hoehermann/libpurple-signald)
- [icyque](https://github.com/EionRobb/icyque) - [icyque](https://github.com/EionRobb/icyque)
- [whatsapp](https://github.com/hoehermann/purple-gowhatsapp) (only in debian based images)
The most significant being the [libpurple Slack plugin](https://github.com/dylex/slack-libpurple). As Slack is turning off its IRC gateway on May 15 2018, now is the time to spin up your own docker image and start using bitlbee instead. The most significant being the [libpurple Slack plugin](https://github.com/dylex/slack-libpurple). As Slack is turning off its IRC gateway on May 15 2018, now is the time to spin up your own docker image and start using bitlbee instead.

20
matrix-e2e.c.patch Normal file
View File

@@ -0,0 +1,20 @@
--- matrix-e2e.c
+++ matrix-e2e.c.new
@@ -949,7 +949,7 @@
to_create = (max_keys / 2) - count;
need_to_send = TRUE;
}
- purple_debug_info("matrixprpl", "%s: %s: %ld\n",
+ purple_debug_info("matrixprpl", "%s: %s: %lld\n",
__func__, key_algo, count);
}
}
@@ -1520,7 +1520,7 @@
plaintext[pt_len] = '\0';
handle_decrypted_olm(pc, conn, cevent_sender, sender_key, plaintext);
} else {
- purple_debug_info("matrixprpl", "%s: Type %zd olm\n", __func__, type);
+ purple_debug_info("matrixprpl", "%s: Type %lld olm\n", __func__, type);
}
if (plaintext) {
clear_mem(plaintext, max_plaintext_len);