45 Commits

Author SHA1 Message Date
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
4 changed files with 467 additions and 273 deletions

View File

@@ -1,37 +1,76 @@
--- ---
kind: pipeline kind: pipeline
type: docker type: docker
name: default name: docker
steps: steps:
- name: docker
image: docker:stable-dind
privileged: true
detach: true
command: [ "dockerd", "--host=tcp://0.0.0.0:2375" ]
- name: test - name: test
image: plugins/docker image: ezkrg/buildx:latest
settings: environment:
username: USER:
from_secret: DHU from_secret: DHU
password: PASSWORD:
from_secret: DHP from_secret: DHP
repo: ezkrg/bitlbee-libpurple DOCKER_HOST: tcp://docker:2375
tags: test commands:
when: - sleep 5
branch: - docker buildx create --use --name docker --node docker --platform linux/amd64 --driver docker-container $DOCKER_HOST
- master - 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 push ezkrg/bitlbee-libpurple:test
- name: release - name: release
image: plugins/docker image: docker:stable
settings: environment:
username: USER:
from_secret: DHU from_secret: DHU
password: PASSWORD:
from_secret: DHP from_secret: DHP
repo: ezkrg/bitlbee-libpurple DOCKER_HOST: tcp://docker:2375
tags: commands:
- ${DRONE_TAG} - echo $PASSWORD | docker login --username $USER --password-stdin
- latest - docker tag ezkrg/bitlbee-libpurple:test ezkrg/bitlbee-libpurple:$DRONE_TAG
when: - docker push ezkrg/bitlbee-libpurple:$DRONE_TAG
event: - docker tag ezkrg/bitlbee-libpurple:test ezkrg/bitlbee-libpurple:latest
- tag - docker push ezkrg/bitlbee-libpurple:latest
when:
event:
- tag
---
kind: pipeline
type: docker
name: notification
clone:
disable: true
steps:
- name: telegram
image: appleboy/drone-telegram:1.3.4
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 {{duration build.started build.finished}}]({{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}})
depends_on:
- docker
--- ---
kind: signature kind: signature
hmac: fe1d9f29429b7c966b53377ced1af268d08ddd754b535fe41a930b2a5ee44744 hmac: 6d34136b0fc3ae4a1c12e759c5eb553b3be864760bf1efd26c3b2b00b711229a
... ...

View File

@@ -1,5 +1,28 @@
# Changelog # Changelog
## 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 ## 2020-04-06 10:19:50
- upgrade discord version from aa0bbf2 to 0.4.3 - upgrade discord version from aa0bbf2 to 0.4.3
- upgrade mastodon version from 83dee0b to v1.4.4 - upgrade mastodon version from 83dee0b to v1.4.4

View File

@@ -1,303 +1,433 @@
FROM alpine:3.10 ARG ALPINE_VERSION=3.12
FROM alpine:${ALPINE_VERSION} as bitlbee-build
ARG BITLBEE_VERSION=3.6 ARG BITLBEE_VERSION=3.6
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 \ glib-dev openssl-dev pidgin-dev json-glib-dev libgcrypt-dev zlib-dev libwebp-dev \
tzdata \ libpng-dev protobuf-c-dev libxml2-dev discount-dev sqlite-dev http-parser-dev libotr-dev \
bash \
glib \
libssl1.1 \
libpurple \
libpurple-xmpp \
libpurple-oscar \
libpurple-bonjour \
&& apk add --no-cache --update --virtual .build-dependencies \
build-base \
git \
glib-dev \
openssl-dev \
python2 \
pidgin-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 \
&& 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 \
&& make install-etc \ && make install-etc \
&& strip /usr/sbin/bitlbee \ && strip /usr/sbin/bitlbee \
&& rm -rf /tmp/* \ && touch /nowhere
&& apk del .build-dependencies
# ---
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=1
ARG FACEBOOK_VERSION=v1.2.0 ARG FACEBOOK_VERSION=v1.2.2
RUN if [ ${FACEBOOK} -eq 1 ]; then cd /tmp \ RUN echo FACEBOOK=${FACEBOOK} > /tmp/status \
&& apk add --no-cache --update \ && if [ ${FACEBOOK} -eq 1 ]; \
json-glib \ then cd /tmp \
&& apk add --no-cache --update --virtual .build-dependencies \ && git clone -n https://github.com/bitlbee/bitlbee-facebook.git \
build-base \ && cd bitlbee-facebook \
git \ && git checkout ${FACEBOOK_VERSION} \
autoconf \ && ./autogen.sh \
automake \ && make \
libtool \ && make install \
glib-dev \ && strip /usr/lib/bitlbee/facebook.so; \
json-glib-dev \ else mkdir -p /usr/lib/bitlbee \
&& git clone -n https://github.com/bitlbee/bitlbee-facebook.git \ && ln -sf /nowhere /usr/lib/bitlbee/facebook.so \
&& cd bitlbee-facebook \ && ln -sf /nowhere /usr/lib/bitlbee/facebook.la; \
&& git checkout ${FACEBOOK_VERSION} \ fi
&& ./autogen.sh --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl \
&& make \ # ---
&& make install \
&& strip /usr/lib/bitlbee/facebook.so \ FROM bitlbee-build as steam-build
&& rm -rf /tmp/* \
&& apk del .build-dependencies; fi
ARG STEAM=1 ARG STEAM=1
ARG STEAM_VERSION=a6444d2 ARG STEAM_VERSION=a6444d2
RUN if [ ${STEAM} -eq 1 ]; then cd /tmp \ RUN echo STEAM=${STEAM} > /tmp/status \
&& apk add --no-cache --update \ && if [ ${STEAM} -eq 1 ]; \
libgcrypt \ then cd /tmp \
&& apk add --no-cache --update --virtual .build-dependencies \ && git clone -n https://github.com/bitlbee/bitlbee-steam.git \
build-base \ && cd bitlbee-steam \
git \ && git checkout ${STEAM_VERSION} \
autoconf \ && ./autogen.sh \
automake \ && make \
libtool \ && make install \
libgcrypt-dev \ && strip /usr/lib/bitlbee/steam.so; \
glib-dev \ else mkdir -p /usr/lib/bitlbee \
&& git clone -n https://github.com/bitlbee/bitlbee-steam.git \ && ln -sf /nowhere /usr/lib/bitlbee/steam.so \
&& cd bitlbee-steam \ && ln -sf /nowhere /usr/lib/bitlbee/steam.la; \
&& git checkout ${STEAM_VERSION} \ fi
&& ./autogen.sh --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl \
&& make \ # ---
&& make install \
&& strip /usr/lib/bitlbee/steam.so \ FROM bitlbee-build as skypeweb-build
&& rm -rf /tmp/* \
&& apk del .build-dependencies; fi
ARG SKYPEWEB=1 ARG SKYPEWEB=1
ARG SKYPEWEB_VERSION=5d29285 ARG SKYPEWEB_VERSION=c4906b8
RUN if [ ${SKYPEWEB} -eq 1 ]; then cd /tmp \ RUN echo SKYPEWEB=${SKYPEWEB} > /tmp/status \
&& apk add --no-cache --update \ && if [ ${SKYPEWEB} -eq 1 ]; \
json-glib \ then cd /tmp \
&& apk add --no-cache --update --virtual .build-dependencies \ && git clone -n https://github.com/EionRobb/skype4pidgin.git \
build-base \ && cd skype4pidgin \
git \ && git checkout ${SKYPEWEB_VERSION} \
pidgin-dev \ && cd skypeweb \
json-glib-dev \ && make \
&& git clone -n https://github.com/EionRobb/skype4pidgin.git \ && make install \
&& cd skype4pidgin \ && strip /usr/lib/purple-2/libskypeweb.so; \
&& git checkout ${SKYPEWEB_VERSION} \ else mkdir -p /usr/lib/purple-2 \
&& cd skypeweb \ && ln -sf /nowhere /usr/lib/purple-2/libskypeweb.so; \
&& make \ fi
&& make install \
&& strip /usr/lib/purple-2/libskypeweb.so \ # ---
&& rm -rf /tmp/* \
&& apk del .build-dependencies; fi FROM bitlbee-build as telegram-build
ARG TELEGRAM=1 ARG TELEGRAM=1
ARG TELEGRAM_VERSION=v1.4.3 ARG TELEGRAM_VERSION=v1.4.3
RUN if [ ${TELEGRAM} -eq 1 ]; then cd /tmp \ RUN echo TELEGRAM=${TELEGRAM} > /tmp/status \
&& apk add --no-cache --update \ && if [ ${TELEGRAM} -eq 1 ]; \
libgcrypt \ then cd /tmp \
zlib \ && git clone -n https://github.com/majn/telegram-purple \
libwebp \ && cd telegram-purple \
libpng \ && git checkout ${TELEGRAM_VERSION} \
&& apk add --no-cache --update --virtual .build-dependencies \ && git submodule update --init --recursive \
build-base \ && ./configure \
git \ && make \
libgcrypt-dev \ && make install \
zlib-dev \ && strip /usr/lib/purple-2/telegram-purple.so; \
pidgin-dev \ else mkdir -p /usr/lib/purple-2 \
libwebp-dev \ && ln -sf /nowhere /usr/lib/purple-2/telegram-purple.so \
libpng-dev \ && ln -sf /nowhere /etc/telegram-purple \
&& git clone -n https://github.com/majn/telegram-purple \ && ln -sf /nowhere /usr/local/share/locale; \
&& cd telegram-purple \ fi
&& git checkout ${TELEGRAM_VERSION} \
&& git submodule update --init --recursive \ # ---
&& ./configure --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl \
&& make \ FROM bitlbee-build as hangouts-build
&& make install \
&& strip /usr/lib/purple-2/telegram-purple.so \
&& rm -rf /tmp/* \
&& apk del .build-dependencies; fi
ARG HANGOUTS=1 ARG HANGOUTS=1
ARG HANGOUTS_VERSION=3f7d89b ARG HANGOUTS_VERSION=e8c8088
RUN if [ ${HANGOUTS} -eq 1 ]; then cd /tmp \ RUN echo HANGOUTS=${HANGOUTS} > /tmp/status \
&& apk add --no-cache --update \ && if [ ${HANGOUTS} -eq 1 ]; \
protobuf-c \ then cd /tmp \
json-glib \ && git clone -n https://github.com/EionRobb/purple-hangouts.git \
&& apk add --no-cache --update --virtual .build-dependencies \ && cd purple-hangouts \
build-base \ && git checkout ${HANGOUTS_VERSION} \
mercurial \ && make \
pidgin-dev \ && make install \
protobuf-c-dev \ && strip /usr/lib/purple-2/libhangouts.so; \
json-glib-dev \ 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/libhangouts.so; \
&& cd purple-hangouts \ fi
&& make \
&& make install \ # ---
&& strip /usr/lib/purple-2/libhangouts.so \
&& rm -rf /tmp/* \ FROM bitlbee-build as slack-build
&& apk del .build-dependencies; fi
ARG SLACK=1 ARG SLACK=1
ARG SLACK_VERSION=e6e5427 ARG SLACK_VERSION=e0c73ae
RUN if [ ${SLACK} -eq 1 ]; then cd /tmp \ SHELL [ "/bin/bash", "-c" ]
&& apk add --no-cache --update --virtual .build-dependencies \
build-base \ RUN echo SLACK=${SLACK} > /tmp/status \
git \ && if [ ${SLACK} -eq 1 ]; \
pidgin-dev \ then cd /tmp \
glib-dev \ && git clone -n https://github.com/dylex/slack-libpurple.git \
&& 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 \ && strip /usr/lib/purple-2/libslack.so; \
&& rm -rf /tmp/* \ else mkdir -p /usr/lib/purple-2 \
&& apk del .build-dependencies; fi && ln -sf /nowhere /usr/lib/purple-2/libslack.so; \
fi
# ---
FROM bitlbee-build as sipe-build
ARG SIPE=1 ARG SIPE=1
ARG SIPE_VERSION=1.25.0 ARG SIPE_VERSION=1.25.0
RUN if [ ${SIPE} -eq 1 ]; then cd /tmp \ RUN echo SIPE=${SIPE} > /tmp/status \
&& apk add --no-cache --update --virtual .build-dependencies \ && if [ ${SIPE} -eq 1 ]; \
build-base \ then cd /tmp \
git \ && git clone -n https://repo.or.cz/siplcs.git \
libtool \ && cd siplcs \
glib-dev \ && git checkout ${SIPE_VERSION} \
intltool \ && ./autogen.sh \
automake \ && ./configure --prefix=/usr \
autoconf \ && make \
openssl-dev \ && make install \
libxml2-dev \ && strip /usr/lib/purple-2/libsipe.so; \
pidgin-dev \ else mkdir -p /usr/lib/purple-2 \
flex \ && ln -sf /nowhere /usr/lib/purple-2/libsipe.so \
&& git clone -n https://repo.or.cz/siplcs.git \ && ln -sf /nowhere /usr/lib/purple-2/libsipe.la \
&& cd siplcs \ && ln -sf /nowhere /usr/share/locale; \
&& git checkout ${SIPE_VERSION} \ fi
&& ./autogen.sh \
&& ./configure --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl --prefix=/usr \ # ---
&& make \
&& make install \ FROM bitlbee-build as discord-build
&& strip /usr/lib/purple-2/libsipe.so \
&& rm -rf /tmp/* \
&& apk del .build-dependencies; fi
ARG DISCORD=1 ARG DISCORD=1
ARG DISCORD_VERSION=0.4.3 ARG DISCORD_VERSION=0.4.3
RUN if [ ${DISCORD} -eq 1 ]; then cd /tmp \ RUN echo DISCORD=${DISCORD} > /tmp/status \
&& apk add --no-cache --update --virtual .build-dependencies \ && if [ ${DISCORD} -eq 1 ]; \
build-base \ then cd /tmp \
git \ && git clone -n https://github.com/sm00th/bitlbee-discord.git \
autoconf \ && cd bitlbee-discord \
automake \ && git checkout ${DISCORD_VERSION} \
libtool \ && ./autogen.sh \
glib-dev \ && ./configure --prefix=/usr \
&& git clone -n https://github.com/sm00th/bitlbee-discord.git \ && make \
&& cd bitlbee-discord \ && make install \
&& git checkout ${DISCORD_VERSION} \ && strip /usr/lib/bitlbee/discord.so; \
&& ./autogen.sh \ else mkdir -p /usr/lib/bitlbee \
&& ./configure --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl --prefix=/usr \ && ln -sf /nowhere /usr/lib/bitlbee/discord.so \
&& make \ && ln -sf /nowhere /usr/lib/bitlbee/discord.la \
&& make install \ && ln -sf /nowhere /usr/share/bitlbee/discord-help.txt; \
&& strip /usr/lib/bitlbee/discord.so \ fi
&& rm -rf /tmp/* \
&& apk del .build-dependencies; fi # ---
FROM bitlbee-build as rocketchat-build
ARG ROCKETCHAT=1 ARG ROCKETCHAT=1
ARG ROCKETCHAT_VERSION=826990b ARG ROCKETCHAT_VERSION=62090bc
RUN if [ ${ROCKETCHAT} -eq 1 ]; then cd /tmp \ RUN echo ROCKETCHAT=${ROCKETCHAT} > /tmp/status \
&& apk add --no-cache --update \ && if [ ${ROCKETCHAT} -eq 1 ]; \
discount \ then cd /tmp \
json-glib \ && git clone -n https://github.com/EionRobb/purple-rocketchat.git \
&& apk add --no-cache --update --virtual .build-dependencies \ && cd purple-rocketchat \
build-base \ && git checkout ${ROCKETCHAT_VERSION} \
mercurial \ && make \
pidgin-dev \ && make install \
json-glib-dev \ && strip /usr/lib/purple-2/librocketchat.so; \
discount-dev \ else mkdir -p /usr/lib/purple-2 \
&& hg clone https://bitbucket.org/EionRobb/purple-rocketchat -r ${ROCKETCHAT_VERSION} \ && ln -sf /nowhere /usr/lib/purple-2/librocketchat.so; \
&& cd purple-rocketchat \ fi
&& make \
&& make install \ # ---
&& strip /usr/lib/purple-2/librocketchat.so \
&& rm -rf /tmp/* \ FROM bitlbee-build as mastodon-build
&& apk del .build-dependencies; fi
ARG MASTODON=1 ARG MASTODON=1
ARG MASTODON_VERSION=v1.4.4 ARG MASTODON_VERSION=v1.4.4
RUN if [ ${MASTODON} -eq 1 ]; then cd /tmp \ RUN echo MASTODON=${MASTODON} > /tmp/status \
&& apk add --no-cache --update --virtual .build-dependencies \ && if [ ${MASTODON} -eq 1 ]; \
build-base \ then cd /tmp \
git \ && git clone -n https://github.com/kensanata/bitlbee-mastodon \
autoconf \ && cd bitlbee-mastodon \
automake \ && git checkout ${MASTODON_VERSION} \
libtool \ && sh ./autogen.sh \
glib-dev \ && ./configure \
&& git clone -n https://github.com/kensanata/bitlbee-mastodon \ && make \
&& cd bitlbee-mastodon \ && make install \
&& git checkout ${MASTODON_VERSION} \ && strip /usr/lib/bitlbee/mastodon.so; \
&& sh ./autogen.sh \ else mkdir -p /usr/lib/bitlbee \
&& ./configure --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl \ && ln -sf /nowhere /usr/lib/bitlbee/mastodon.so \
&& make \ && ln -sf /nowhere /usr/lib/bitlbee/mastodon.la \
&& make install \ && ln -sf /nowhere /usr/share/bitlbee/mastodon-help.txt; \
&& strip /usr/lib/bitlbee/mastodon.so \ fi
&& rm -rf /tmp/* \
&& apk del .build-dependencies; fi # ---
FROM bitlbee-build as matrix-build
ARG MATRIX=1 ARG MATRIX=1
ARG OLM_VERSION=3.1.4 ARG OLM_VERSION=3.2.4
ARG MATRIX_VERSION=1d23385 ARG MATRIX_VERSION=2fcd5b8
RUN if [ ${MATRIX} -eq 1 ]; then cd /tmp \ RUN echo MATRIX=${MATRIX} > /tmp/status \
&& apk add --no-cache --update \ && if [ ${MATRIX} -eq 1 ]; \
sqlite \ then cd /tmp \
http-parser \ && git clone -n https://gitlab.matrix.org/matrix-org/olm.git \
libgcrypt \ && cd olm \
json-glib \ && git checkout ${OLM_VERSION} \
&& apk add --no-cache --update --virtual .build-dependencies \ && make \
build-base \ && make install \
git \ && strip /usr/local/lib/libolm.so.${OLM_VERSION} \
libgcrypt-dev \ && cd /tmp \
pidgin-dev \ && git clone -n https://github.com/matrix-org/purple-matrix \
json-glib-dev \ && cd purple-matrix \
glib-dev \ && git checkout ${MATRIX_VERSION} \
sqlite-dev \ && make \
http-parser-dev \ && make install \
&& git clone -n https://gitlab.matrix.org/matrix-org/olm.git \ && strip /usr/lib/purple-2/libmatrix.so; \
&& cd olm \ else mkdir -p /usr/lib/purple-2 \
&& git checkout ${OLM_VERSION} \ && ln -sf /nowhere /usr/local/lib/libolm.so \
&& make \ && ln -sf /nowhere /usr/lib/purple-2/libmatrix.so; \
&& make install \ fi
&& strip /usr/local/lib/libolm.so.${OLM_VERSION} \
&& cd /tmp \ # ---
&& git clone -n https://github.com/matrix-org/purple-matrix \
&& cd purple-matrix \ FROM bitlbee-build as signald-build
&& git checkout ${MATRIX_VERSION} \
&& make \ ARG SIGNAL=1
&& make install \ ARG SIGNAL_VERSION=v0.8.1
&& strip /usr/lib/purple-2/libmatrix.so \
&& rm -rf /tmp/* \ RUN echo SIGNAL=${SIGNAL} > /tmp/status \
&& apk del .build-dependencies; fi && 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/local/lib/libolm.so /tmp/usr/local/lib/libolm.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=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"; 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" ]

View File

@@ -12,6 +12,8 @@ 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)
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.