43 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
ezkrg
35167f6b79 revert arm build cause fail on armv7 2021-09-15 22:33:09 +02:00
ezkrg
25e728325c fix matrix plugin loading 2021-09-15 22:30:14 +02:00
ezkrg
0d38a26046 use push instead of load with multi-platform 2021-09-14 23:11:06 +02:00
ezkrg
8e32110245 no tty 2021-09-14 23:04:06 +02:00
ezkrg
91d80a98a4 sign merge #23 2021-09-14 22:59:55 +02:00
ezkrg
a9d4a4c720 markrawls - build for ARM platforms 2021-09-14 22:58:47 +02:00
Attila Szabó
6b56b0a095 Merge pull request #23 from markrawls/master
Build for ARM platforms
2021-09-14 22:52:27 +02:00
Aria Taylor
6427234ea7 Build for multiple platforms 2021-09-12 22:52:32 -04:00
ezkrg
064739d091 note mooomooos work 2021-07-14 10:58:36 +02:00
Attila Szabó
0eb2c284f7 Merge pull request #22 from mooomooo/attachments
Add flag and deps to enable attachment handling for Signal plugin
2021-07-14 10:42:59 +02:00
mooomooo
796ccbacc8 Add flag and deps to enable attachment handling for Signal plugin (see https://github.com/hoehermann/libpurple-signald/issues/9) 2021-07-13 21:38:40 +00:00
ezkrg
a087e0ad72 delete test dockerfile 2021-06-12 12:49:15 +02:00
ezkrg
e3adfa3528 copy libolm without version 2021-06-11 21:33:18 +02:00
ezkrg
9059f87b25 fix olm lib version 2021-06-11 19:56:34 +02:00
ezkrg
dc3072ee17 fix signal build 2021-06-11 19:56:03 +02:00
ezkrg
169b65f3d2 update plugins 2021-06-11 19:32:10 +02:00
ezkrg
3588344d75 add icyque link 2021-06-07 14:13:33 +02:00
ezkrg
6738827bff add icyque 2021-05-14 17:06:30 +02:00
ezkrg
5dee26c2fb log updates 2021-05-06 15:23:04 +02:00
ezkrg
e926d0870f update skypeweb 2021-05-06 14:41:25 +02:00
ezkrg
e0484eb0da update facebook plugin 2021-05-06 14:00:31 +02:00
Attila Szabó
739b9b94f5 Merge pull request #20 from heywoodlh/master
use updated libpurple-signal commit
2021-02-11 09:38:55 +01:00
Spencer Heywood
fd12688c5a use updated libpurple-signal commit 2021-02-10 15:54:20 -07:00
ezkrg
1dd49790c8 add signal 2020-11-04 09:28:56 +01:00
ezkrg
a6225e3596 fix signal pkg deps 2020-11-04 09:24:35 +01:00
Attila Szabó
fb6b62172b Merge pull request #17 from heywoodlh/master
added signald support
2020-11-04 08:47:44 +01:00
Spencer Heywood
5f6359f70c added signald support 2020-11-03 19:13:46 -07:00
6 changed files with 652 additions and 36 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 . - 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,60 @@ 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 when:
- docker tag ezkrg/bitlbee-libpurple:test ezkrg/bitlbee-libpurple:latest event:
- docker push ezkrg/bitlbee-libpurple:latest - tag
---
kind: pipeline
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: when:
event: event:
- tag - tag
@@ -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: 6d34136b0fc3ae4a1c12e759c5eb553b3be864760bf1efd26c3b2b00b711229a hmac: e51bb8ccb6f602e0f02e6bd0e9dfd8456c4655c4bb299fc64a10c8b162294544
... ...

View File

@@ -1,5 +1,28 @@
# Changelog # Changelog
## 2021-09-14 22:52:43 ([markrawls](https://github.com/markrawls))
- build for ARM platforms
## 2021-07-13 23:38:45 ([mooomooo](https://github.com/mooomooo))
- add flag and deps to enable attachment handling for Signal plugin
## 2021-06-11 19:23:13
- update hangouts
- update slack
- update rocket.chat
- update olm and matrix
- update signal
## 2021-05-14 17:05:39
- add icyque
## 2021-05-06 15:21:19
- update facebook version to 1.2.2
- update skypeweb to c4906b8
## 2020-11-04 03:16:34 ([heywoodlh](https://github.com/heywoodlh))
- add signal
## 2020-04-09 20:27:51 ## 2020-04-09 20:27:51
- add otr - add otr

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 \
@@ -40,7 +40,7 @@ RUN echo OTR=${OTR} > /tmp/status \
FROM bitlbee-build as facebook-build FROM bitlbee-build as facebook-build
ARG FACEBOOK=1 ARG FACEBOOK=1
ARG FACEBOOK_VERSION=v1.2.0 ARG FACEBOOK_VERSION=v1.2.2
RUN echo FACEBOOK=${FACEBOOK} > /tmp/status \ RUN echo FACEBOOK=${FACEBOOK} > /tmp/status \
&& if [ ${FACEBOOK} -eq 1 ]; \ && if [ ${FACEBOOK} -eq 1 ]; \
@@ -84,7 +84,7 @@ RUN echo STEAM=${STEAM} > /tmp/status \
FROM bitlbee-build as skypeweb-build FROM bitlbee-build as skypeweb-build
ARG SKYPEWEB=1 ARG SKYPEWEB=1
ARG SKYPEWEB_VERSION=f836eeb ARG SKYPEWEB_VERSION=c4906b8
RUN echo SKYPEWEB=${SKYPEWEB} > /tmp/status \ RUN echo SKYPEWEB=${SKYPEWEB} > /tmp/status \
&& if [ ${SKYPEWEB} -eq 1 ]; \ && if [ ${SKYPEWEB} -eq 1 ]; \
@@ -129,7 +129,7 @@ RUN echo TELEGRAM=${TELEGRAM} > /tmp/status \
FROM bitlbee-build as hangouts-build FROM bitlbee-build as hangouts-build
ARG HANGOUTS=1 ARG HANGOUTS=1
ARG HANGOUTS_VERSION=efa7a53 ARG HANGOUTS_VERSION=e8c8088
RUN echo HANGOUTS=${HANGOUTS} > /tmp/status \ RUN echo HANGOUTS=${HANGOUTS} > /tmp/status \
&& if [ ${HANGOUTS} -eq 1 ]; \ && if [ ${HANGOUTS} -eq 1 ]; \
@@ -149,7 +149,7 @@ RUN echo HANGOUTS=${HANGOUTS} > /tmp/status \
FROM bitlbee-build as slack-build FROM bitlbee-build as slack-build
ARG SLACK=1 ARG SLACK=1
ARG SLACK_VERSION=2e9fa02 ARG SLACK_VERSION=e0c73ae
SHELL [ "/bin/bash", "-c" ] SHELL [ "/bin/bash", "-c" ]
@@ -220,7 +220,7 @@ RUN echo DISCORD=${DISCORD} > /tmp/status \
FROM bitlbee-build as rocketchat-build FROM bitlbee-build as rocketchat-build
ARG ROCKETCHAT=1 ARG ROCKETCHAT=1
ARG ROCKETCHAT_VERSION=5da3e14 ARG ROCKETCHAT_VERSION=62090bc
RUN echo ROCKETCHAT=${ROCKETCHAT} > /tmp/status \ RUN echo ROCKETCHAT=${ROCKETCHAT} > /tmp/status \
&& if [ ${ROCKETCHAT} -eq 1 ]; \ && if [ ${ROCKETCHAT} -eq 1 ]; \
@@ -264,32 +264,69 @@ 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.1.4 ARG MATRIX_VERSION=88f9558
ARG MATRIX_VERSION=1d23385
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.3.1.4 \
&& ln -sf /nowhere /usr/lib/purple-2/libmatrix.so; \ && ln -sf /nowhere /usr/lib/purple-2/libmatrix.so; \
fi 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 \
&& apk --no-cache add file-dev libmagic \
&& 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 alpine:${ALPINE_VERSION} as bitlbee-plugins FROM alpine:${ALPINE_VERSION} as bitlbee-plugins
COPY --from=bitlbee-build /usr/sbin/bitlbee /tmp/usr/sbin/bitlbee COPY --from=bitlbee-build /usr/sbin/bitlbee /tmp/usr/sbin/bitlbee
@@ -342,10 +379,15 @@ 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.3.1.4 /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
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
RUN apk add --update --no-cache findutils \ RUN apk add --update --no-cache findutils \
&& find /tmp/ -type f -empty -delete \ && find /tmp/ -type f -empty -delete \
&& find /tmp/ -type d -empty -delete \ && find /tmp/ -type d -empty -delete \
@@ -367,13 +409,15 @@ RUN addgroup -g 101 -S bitlbee \
&& source /plugins \ && source /plugins \
&& if [ ${OTR} -eq 1 ]; then PKGS="${PKGS} libotr"; fi \ && if [ ${OTR} -eq 1 ]; then PKGS="${PKGS} libotr"; fi \
&& if [ ${FACEBOOK} -eq 1 ] || [ ${SKYPEWEB} -eq 1 ] || [ ${HANGOUTS} -eq 1 ] \ && if [ ${FACEBOOK} -eq 1 ] || [ ${SKYPEWEB} -eq 1 ] || [ ${HANGOUTS} -eq 1 ] \
|| [ ${ROCKETCHAT} -eq 1 ] || [ ${MATRIX} -eq 1 ]; then PKGS="${PKGS} json-glib"; fi \ || [ ${ROCKETCHAT} -eq 1 ] || [ ${MATRIX} -eq 1 ] || [ ${SIGNAL} -eq 1 ] \
|| [ ${ICYQUE} -eq 1 ]; then PKGS="${PKGS} json-glib"; fi \
&& if [ ${STEAM} -eq 1 ] || [ ${TELEGRAM} -eq 1 ] || [ ${MATRIX} -eq 1 ]; then PKGS="${PKGS} libgcrypt"; fi \ && if [ ${STEAM} -eq 1 ] || [ ${TELEGRAM} -eq 1 ] || [ ${MATRIX} -eq 1 ]; then PKGS="${PKGS} libgcrypt"; fi \
&& if [ ${TELEGRAM} -eq 1 ]; then PKGS="${PKGS} zlib libwebp libpng"; fi \ && if [ ${TELEGRAM} -eq 1 ]; then PKGS="${PKGS} zlib libwebp libpng"; fi \
&& if [ ${HANGOUTS} -eq 1 ]; then PKGS="${PKGS} protobuf-c"; fi \ && if [ ${HANGOUTS} -eq 1 ] || [ ${SIGNAL} -eq 1 ]; then PKGS="${PKGS} protobuf-c"; 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

@@ -12,6 +12,9 @@ This docker image includes bitlbee with a bunch of useful plugins:
- [rocket.chat](https://bitbucket.org/EionRobb/purple-rocketchat) - [rocket.chat](https://bitbucket.org/EionRobb/purple-rocketchat)
- [mastodon](https://github.com/kensanata/bitlbee-mastodon) - [mastodon](https://github.com/kensanata/bitlbee-mastodon)
- [matrix](https://github.com/matrix-org/purple-matrix) - [matrix](https://github.com/matrix-org/purple-matrix)
- [signal](https://github.com/hoehermann/libpurple-signald)
- [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);