88 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
ezkrg
ccbe7eb733 missing login in release 2020-09-25 15:27:54 +02:00
ezkrg
dfd9dca717 use older notification plugin 2020-09-25 15:08:56 +02:00
ezkrg
c5276e0bba new drone sign 2020-09-25 13:00:59 +02:00
ezkrg
12425cf333 ignore notification fail 2020-09-25 13:00:19 +02:00
ezkrg
6090882311 use since instead of duration 2020-09-25 12:58:48 +02:00
ezkrg
c8ad17326e update alpine version 2020-09-24 23:57:41 +02:00
ezkrg
31a3c73e4a update slack version 2020-09-24 23:11:09 +02:00
ezkrg
f3f279382f update skypeweb version 2020-09-24 23:08:47 +02:00
ezkrg
0b64ce98d4 fix source repos moved from bitbucket to github 2020-09-24 23:06:07 +02:00
ezkrg
44345391b8 disable clone in notification 2020-04-12 14:24:22 +02:00
ezkrg
b57d22d344 format message 2020-04-12 14:23:07 +02:00
ezkrg
ad41a804a8 speareta notification to pipeline 2020-04-12 12:27:14 +02:00
ezkrg
88bfdeb2bc fix telegram message 2020-04-12 11:50:56 +02:00
ezkrg
2b06fc990c add telegram notification 2020-04-11 19:07:05 +02:00
ezkrg
c19df4b246 use alpine 3.11 2020-04-11 16:23:37 +02:00
ezkrg
537066feb6 fix pkgs selection 2020-04-11 13:45:02 +02:00
ezkrg
892055fa94 remove unnecessary build flags 2020-04-10 10:38:30 +02:00
ezkrg
fb985f79fd use buildx 2020-04-09 20:34:26 +02:00
ezkrg
f5e2479643 otr 2020-04-09 20:30:04 +02:00
ezkrg
bdfebad796 install packages only for enabled plugins 2020-04-09 19:38:56 +02:00
ezkrg
df8fa001df run docker without tls 2020-04-09 18:06:52 +02:00
ezkrg
1adcf522e6 the forgotten otr plugin 2020-04-09 08:06:57 +02:00
ezkrg
cfef76d05a Merge pull request #16 from ezkrg/multi-stage
Use multi-stage and buildkit to speed up builds
2020-04-08 12:37:40 +02:00
ezkrg
2b5562c56f use buildkit 2020-04-08 11:55:16 +02:00
ezkrg
b99250393f use multi-stage instead of single-stage 2020-04-08 11:54:55 +02:00
ezkrg
cc76bf6720 ident steps 2020-04-07 18:44:32 +02:00
ezkrg
de3d1ebc7c update changelog 2020-04-07 15:33:31 +02:00
ezkrg
f7d5ec7109 upgrade matrix version 2020-04-06 10:19:31 +02:00
ezkrg
58d60ca91e upgrade mastodon version 2020-04-06 10:16:46 +02:00
ezkrg
9ac2d40fbb upgrade discord version 2020-04-06 07:54:04 +02:00
ezkrg
76ccab317c update changelog 2020-04-06 07:38:52 +02:00
ezkrg
4adc3ae460 add flex 2020-04-05 14:01:58 +02:00
ezkrg
5e208e231e fix clone dir name 2020-04-05 13:21:43 +02:00
ezkrg
931afdc586 upgrade sipe version and change clone url 2020-04-05 13:03:34 +02:00
ezkrg
2a98d409b1 upgrade slack version 2020-04-05 11:53:22 +02:00
ezkrg
9ca7f4958d upgrade telegram version 2020-04-05 10:58:00 +02:00
ezkrg
04c678870f sign drone config 2020-01-13 12:53:28 +01:00
ezkrg
4befd197a9 add dron config 2020-01-13 12:48:08 +01:00
ezkrg
a236c2eb8f Merge pull request #15 from ezkrg/multirun
multi RUN
2019-11-26 20:55:37 +01:00
ezkrg
e815a2439f spaces or tabs ?!?! 2019-11-26 20:30:40 +01:00
ezkrg
88a558de05 multiple run in Dockerfile 2019-11-26 20:24:58 +01:00
ezkrg
0023581ccb strip bitlbee and liboml 2019-11-25 23:59:01 +01:00
ezkrg
9f05eee5f3 Merge pull request #14 from ezkrg/matrix
add matrix
2019-11-25 18:19:03 +01:00
ezkrg
646575547f add matrix 2019-11-25 18:14:25 +01:00
ezkrg
a49641cdd4 add matrix 2019-11-25 18:11:04 +01:00
6 changed files with 1083 additions and 148 deletions

134
.drone.yml Normal file
View File

@@ -0,0 +1,134 @@
---
kind: pipeline
type: docker
name: alpine
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:cache --cache-to ezkrg/bitlbee-libpurple:cache -t ezkrg/bitlbee-libpurple:test --platform linux/amd64,linux/arm64,linux/armhf .
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: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 .
when:
event:
- 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:
event:
- tag
---
kind: pipeline
type: docker
name: notification
clone:
disable: true
steps:
- name: telegram
image: appleboy/drone-telegram:1.3.10
failure: ignore
settings:
token:
from_secret: TT
to:
from_secret: TID
message: |
*{{commit.author}} ({{commit.email}})*
*{{repo.namespace}}/{{repo.name}}*
[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}})
trigger:
status:
- success
- failure
depends_on:
- alpine
- debian
---
kind: signature
hmac: e51bb8ccb6f602e0f02e6bd0e9dfd8456c4655c4bb299fc64a10c8b162294544
...

View File

@@ -1,5 +1,45 @@
# 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
- add otr
## 2020-04-06 10:19:50
- upgrade discord version from aa0bbf2 to 0.4.3
- upgrade mastodon version from 83dee0b to v1.4.4
- upgrade matrix version from 4494ba2 to 1d23385
## 2020-04-05 14:01:52
- upgrade telegram version from b101bbb to 1.4.3
- upgrade slack version from 8acc4eb to e6e5427
- upgrade sipe version from upstream/1.23.3 to 1.25.0
- change sipe clone url
## 2019-11-25 18:13:41 ([revmischa](https://github.com/revmischa))
- add matrix
## 2019-11-25 13:39:21 ([revmischa](https://github.com/revmischa)) ## 2019-11-25 13:39:21 ([revmischa](https://github.com/revmischa))
- add mastodon - add mastodon

View File

@@ -1,157 +1,426 @@
FROM alpine:3.10 ARG ALPINE_VERSION=3.12
ARG FACEBOOK=1 FROM alpine:${ALPINE_VERSION} as bitlbee-build
ARG STEAM=1
ARG SKYPEWEB=1
ARG TELEGRAM=1
ARG HANGOUTS=1
ARG SLACK=1
ARG SIPE=1
ARG DISCORD=1
ARG ROCKETCHAT=1
ARG MASTODON=1
ENV BITLBEE_VERSION 3.6 ARG BITLBEE_VERSION=3.6
ENV FACEBOOK_VERSION v1.2.0
ENV STEAM_VERSION a6444d2
ENV SKYPEWEB_VERSION 5d29285
ENV TELEGRAM_VERSION b101bbb
ENV HANGOUTS_VERSION 3f7d89b
ENV SLACK_VERSION 8acc4eb
ENV SIPE_VERSION upstream/1.23.3
ENV DISCORD_VERSION aa0bbf2
ENV ROCKETCHAT_VERSION 826990b
ENV MASTODON_VERSION 83dee0b
RUN addgroup -g 101 -S bitlbee \ RUN apk add --no-cache --update \
&& adduser -u 101 -D -S -G bitlbee bitlbee \ bash shadow build-base git python2 autoconf automake libtool mercurial intltool flex \
&& apk add --no-cache --update tzdata \ glib-dev openssl-dev pidgin-dev json-glib-dev libgcrypt-dev zlib-dev libwebp-dev libpng-dev \
libpurple \ protobuf-c-dev libxml2-dev discount-dev sqlite-dev http-parser-dev libotr-dev olm-dev \
libpurple-xmpp \
libpurple-oscar \
libpurple-bonjour \
json-glib \
libgcrypt \
libssl1.1 \
libcrypto1.1 \
gettext \
libwebp \
glib \
protobuf-c \
discount-libs \
libpng \
bash \
&& apk add --no-cache --update --virtual .build-dependencies \
git \
make \
autoconf \
automake \
libtool \
gcc \
g++ \
json-glib-dev \
libgcrypt-dev \
openssl-dev \
pidgin-dev \
libwebp-dev \
glib-dev \
protobuf-c-dev \
mercurial \
libxml2-dev \
discount-dev \
libpng-dev \
&& cd /tmp \ && cd /tmp \
&& git clone https://github.com/bitlbee/bitlbee.git \ && git clone -n https://github.com/bitlbee/bitlbee.git \
&& cd bitlbee \ && cd bitlbee \
&& git checkout ${BITLBEE_VERSION} \ && git checkout ${BITLBEE_VERSION} \
&& ./configure --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl --purple=1 --ssl=openssl --prefix=/usr --etcdir=/etc/bitlbee \ && ./configure --purple=1 --otr=plugin --ssl=openssl --prefix=/usr --etcdir=/etc/bitlbee \
&& make \ && make \
&& make install \ && make install-bin \
&& make install-doc \
&& make install-dev \ && make install-dev \
&& if [ ${FACEBOOK} -eq 1 ]; then cd /tmp \ && make install-etc \
&& git clone https://github.com/bitlbee/bitlbee-facebook.git \ && 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 \ && cd bitlbee-facebook \
&& git checkout ${FACEBOOK_VERSION} \ && git checkout ${FACEBOOK_VERSION} \
&& ./autogen.sh \ && ./autogen.sh \
&& make \ && make \
&& make install \ && make install \
&& strip /usr/lib/bitlbee/facebook.so; fi \ && strip /usr/lib/bitlbee/facebook.so; \
&& if [ ${STEAM} -eq 1 ]; then cd /tmp \ else mkdir -p /usr/lib/bitlbee \
&& git clone https://github.com/bitlbee/bitlbee-steam.git \ && 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 \ && cd bitlbee-steam \
&& git checkout ${STEAM_VERSION} \ && git checkout ${STEAM_VERSION} \
&& ./autogen.sh --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl \ && ./autogen.sh \
&& make \ && make \
&& make install \ && make install \
&& strip /usr/lib/bitlbee/steam.so; fi \ && strip /usr/lib/bitlbee/steam.so; \
&& if [ ${SKYPEWEB} -eq 1 ]; then cd /tmp \ else mkdir -p /usr/lib/bitlbee \
&& git clone git://github.com/EionRobb/skype4pidgin.git \ && ln -sf /nowhere /usr/lib/bitlbee/steam.so \
&& cd skype4pidgin/skypeweb \ && 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} \ && git checkout ${SKYPEWEB_VERSION} \
&& cd skypeweb \
&& make \ && make \
&& make install \ && make install \
&& strip /usr/lib/purple-2/libskypeweb.so; fi \ && strip /usr/lib/purple-2/libskypeweb.so; \
&& if [ ${TELEGRAM} -eq 1 ]; then cd /tmp \ else mkdir -p /usr/lib/purple-2 \
&& git clone --recursive https://github.com/majn/telegram-purple \ && 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 \
&& git clone -n https://github.com/majn/telegram-purple \
&& cd telegram-purple \ && cd telegram-purple \
&& git checkout ${TELEGRAM_VERSION} \ && git checkout ${TELEGRAM_VERSION} \
&& ./configure --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl \ && git submodule update --init --recursive \
&& ./configure \
&& make \ && make \
&& make install \ && make install \
&& strip /usr/lib/purple-2/telegram-purple.so; fi \ && strip /usr/lib/purple-2/telegram-purple.so; \
&& if [ ${HANGOUTS} -eq 1 ]; then cd /tmp \ else mkdir -p /usr/lib/purple-2 \
&& hg clone https://bitbucket.org/EionRobb/purple-hangouts -r ${HANGOUTS_VERSION} \ && 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 \
&& git clone -n https://github.com/EionRobb/purple-hangouts.git \
&& cd purple-hangouts \ && cd purple-hangouts \
&& git checkout ${HANGOUTS_VERSION} \
&& make \ && make \
&& make install \ && make install \
&& strip /usr/lib/purple-2/libhangouts.so; fi \ && strip /usr/lib/purple-2/libhangouts.so; \
&& if [ ${SLACK} -eq 1 ]; then cd /tmp \ else mkdir -p /usr/lib/purple-2 \
&& git clone https://github.com/dylex/slack-libpurple.git \ && 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 \ && cd slack-libpurple \
&& git checkout ${SLACK_VERSION} \ && git checkout ${SLACK_VERSION} \
&& make \ && make \
&& install -d /usr/share/pixmaps/pidgin/protocols/{16,22,48} \
&& make install \ && make install \
&& strip /usr/lib/purple-2/libslack.so; fi \ && strip /usr/lib/purple-2/libslack.so; \
&& if [ ${SIPE} -eq 1 ]; then cd /tmp \ else mkdir -p /usr/lib/purple-2 \
&& git clone https://github.com/tieto/sipe.git \ && ln -sf /nowhere /usr/lib/purple-2/libslack.so; \
&& cd sipe \ 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 \
&& git clone -n https://repo.or.cz/siplcs.git \
&& cd siplcs \
&& git checkout ${SIPE_VERSION} \ && git checkout ${SIPE_VERSION} \
&& ./autogen.sh \ && ./autogen.sh \
&& ./configure --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl --prefix=/usr \ && ./configure --prefix=/usr \
&& make \ && make \
&& make install \ && make install \
&& strip /usr/lib/purple-2/libsipe.so; fi \ && strip /usr/lib/purple-2/libsipe.so; \
&& if [ ${DISCORD} -eq 1 ]; then cd /tmp \ else mkdir -p /usr/lib/purple-2 \
&& git clone https://github.com/sm00th/bitlbee-discord.git \ && 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 \ && cd bitlbee-discord \
&& git checkout ${DISCORD_VERSION} \ && git checkout ${DISCORD_VERSION} \
&& ./autogen.sh \ && ./autogen.sh \
&& ./configure --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl --prefix=/usr \ && ./configure --prefix=/usr \
&& make \ && make \
&& make install \ && make install \
&& strip /usr/lib/bitlbee/discord.so; fi \ && strip /usr/lib/bitlbee/discord.so; \
&& if [ ${ROCKETCHAT} -eq 1 ]; then cd /tmp \ else mkdir -p /usr/lib/bitlbee \
&& hg clone https://bitbucket.org/EionRobb/purple-rocketchat -r ${ROCKETCHAT_VERSION} \ && 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 \
&& git clone -n https://github.com/EionRobb/purple-rocketchat.git \
&& cd purple-rocketchat \ && cd purple-rocketchat \
&& git checkout ${ROCKETCHAT_VERSION} \
&& make \ && make \
&& make install \ && make install \
&& strip /usr/lib/purple-2/librocketchat.so; fi \ && strip /usr/lib/purple-2/librocketchat.so; \
&& if [ ${MASTODON} -eq 1 ]; then cd /tmp \ 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 \ && git clone -n https://github.com/kensanata/bitlbee-mastodon \
&& cd bitlbee-mastodon \ && cd bitlbee-mastodon \
&& git checkout ${MASTODON_VERSION} \ && git checkout ${MASTODON_VERSION} \
&& ./autogen.sh \ && sh ./autogen.sh \
&& ./configure --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl \ && ./configure \
&& make \ && make \
&& make install \ && make install \
&& strip /usr/lib/bitlbee/mastodon.so; fi \ && strip /usr/lib/bitlbee/mastodon.so; \
&& rm -rf /tmp/* \ else mkdir -p /usr/lib/bitlbee \
&& rm -rf /usr/include/bitlbee \ && ln -sf /nowhere /usr/lib/bitlbee/mastodon.so \
&& rm -f /usr/lib/pkgconfig/bitlbee.pc \ && ln -sf /nowhere /usr/lib/bitlbee/mastodon.la \
&& apk del .build-dependencies && ln -sf /nowhere /usr/share/bitlbee/mastodon-help.txt; \
fi
# ---
FROM bitlbee-build as matrix-build
ARG MATRIX=1
ARG MATRIX_VERSION=88f9558
COPY matrix-e2e.c.patch /tmp/matrix-e2e.c.patch
RUN echo MATRIX=${MATRIX} > /tmp/status \
&& if [ ${MATRIX} -eq 1 ]; \
then cd /tmp \
&& 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 \
&& 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
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
RUN apk add --update --no-cache findutils \
&& find /tmp/ -type f -empty -delete \
&& find /tmp/ -type d -empty -delete \
&& cat /tmp/plugin/* > /tmp/plugins \
&& rm -rf /tmp/plugin
# ---
FROM alpine:${ALPINE_VERSION} as bitlbee-libpurple
COPY --from=bitlbee-plugins /tmp/ /
ARG PKGS="tzdata bash glib libssl1.1 libpurple libpurple-xmpp \
libpurple-oscar libpurple-bonjour"
RUN addgroup -g 101 -S bitlbee \
&& adduser -u 101 -D -S -G bitlbee bitlbee \
&& install -d -m 750 -o bitlbee -g bitlbee /var/lib/bitlbee \
&& source /plugins \
&& if [ ${OTR} -eq 1 ]; then PKGS="${PKGS} libotr"; 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} json-glib"; 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 [ ${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 [ ${ROCKETCHAT} -eq 1 ]; then PKGS="${PKGS} discount"; fi \
&& if [ ${MATRIX} -eq 1 ]; then PKGS="${PKGS} sqlite http-parser olm"; fi \
&& apk add --no-cache --update ${PKGS} \
&& rm /plugins
EXPOSE 6667 EXPOSE 6667
USER bitlbee CMD [ "/usr/sbin/bitlbee", "-F", "-n", "-u", "bitlbee" ]
CMD [ "/usr/sbin/bitlbee", "-F", "-n" ]

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

@@ -11,6 +11,10 @@ This docker image includes bitlbee with a bunch of useful plugins:
- [discord](https://github.com/sm00th/bitlbee-discord) - [discord](https://github.com/sm00th/bitlbee-discord)
- [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)
- [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);