f3a5ead03295e4661f2cb814e5a0eb6103489171
[gentoo.git] / mail-mta / protonmail-bridge-bin / protonmail-bridge-bin-1.1.6.ebuild
1 # Copyright 1999-2019 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=7
5
6 inherit rpm
7
8 DESCRIPTION="Serves ProtonMail to IMAP/SMTP clients"
9 HOMEPAGE="https://protonmail.com/bridge/"
10 SRC_URI="https://protonmail.com/download/${P/-bin/}-1.x86_64.rpm"
11
12 RESTRICT="bindist mirror"
13
14 LICENSE="MIT protonmail-bridge-EULA"
15 SLOT="0"
16 KEYWORDS="~amd64"
17 IUSE=""
18
19 DEPEND=""
20 RDEPEND="
21         app-crypt/libsecret
22         dev-libs/glib:2
23         media-sound/pulseaudio[glib]
24         sys-apps/dbus
25         virtual/opengl
26         media-libs/fontconfig
27         media-libs/freetype
28         x11-libs/libICE
29         x11-libs/libSM
30         x11-libs/libX11
31         x11-libs/libxcb
32         x11-libs/libXext
33         x11-libs/libXi
34 "
35 BDEPEND="dev-util/patchelf"
36
37 S="${WORKDIR}"
38
39 QA_PREBUILT="*"
40
41 src_prepare() {
42         # Some bogus files got into package.
43         rm -rf usr/lib/.build-id
44
45         # Bug #660366. To workaround preserving libs, set RUNPATH and rm unused libs
46         cd "${S}/usr/lib/protonmail/bridge" || die
47         patchelf --set-rpath '$ORIGIN/lib' protonmail-bridge || die "patchelf failed"
48         patchelf --set-rpath '$ORIGIN' lib/libicui18n.so.56 || die "patchelf failed"
49         patchelf --set-rpath '$ORIGIN' lib/libicuuc.so.56 || die "patchelf failed"
50
51         rm "lib/libQt53DCore.so.5" || die
52         rm "lib/libQt53DExtras.so.5" || die
53         rm "lib/libQt53DInput.so.5" || die
54         rm "lib/libQt53DLogic.so.5" || die
55         rm "lib/libQt53DQuick.so.5" || die
56         rm "lib/libQt53DQuickExtras.so.5" || die
57         rm "lib/libQt53DQuickInput.so.5" || die
58         rm "lib/libQt53DQuickRender.so.5" || die
59         rm "lib/libQt53DRender.so.5" || die
60         rm "lib/libQt5Concurrent.so.5" || die
61         rm "lib/libQt5Gamepad.so.5" || die
62         rm "lib/libQt5QuickParticles.so.5" || die
63         rm "plugins/audio/libqtaudio_alsa.so" || die
64         rm "plugins/audio/libqtmedia_pulse.so" || die
65         rm "plugins/bearer/libqconnmanbearer.so" || die
66         rm "plugins/bearer/libqgenericbearer.so" || die
67         rm "plugins/bearer/libqnmbearer.so" || die
68         rm "plugins/canbus/libqtpeakcanbus.so" || die
69         rm "plugins/canbus/libqtsocketcanbus.so" || die
70         rm "plugins/canbus/libqttinycanbus.so" || die
71         rm "plugins/designer/libqquickwidget.so" || die
72         rm "plugins/designer/libqwebengineview.so" || die
73         rm "plugins/egldeviceintegrations/libqeglfs-emu-integration.so" || die
74         rm "plugins/egldeviceintegrations/libqeglfs-x11-integration.so" || die
75         rm "plugins/gamepads/libevdevgamepad.so" || die
76         rm "plugins/generic/libqevdevkeyboardplugin.so" || die
77         rm "plugins/generic/libqevdevmouseplugin.so" || die
78         rm "plugins/generic/libqevdevtabletplugin.so" || die
79         rm "plugins/generic/libqevdevtouchplugin.so" || die
80         rm "plugins/generic/libqtuiotouchplugin.so" || die
81         rm "plugins/geometryloaders/libdefaultgeometryloader.so" || die
82         rm "plugins/geometryloaders/libgltfgeometryloader.so" || die
83         rm "plugins/geoservices/libqtgeoservices_esri.so" || die
84         rm "plugins/geoservices/libqtgeoservices_itemsoverlay.so" || die
85         rm "plugins/geoservices/libqtgeoservices_mapbox.so" || die
86         rm "plugins/geoservices/libqtgeoservices_mapboxgl.so" || die
87         rm "plugins/geoservices/libqtgeoservices_nokia.so" || die
88         rm "plugins/geoservices/libqtgeoservices_osm.so" || die
89         rm "plugins/iconengines/libqsvgicon.so" || die
90         rm "plugins/mediaservice/libgstaudiodecoder.so" || die
91         rm "plugins/mediaservice/libgstcamerabin.so" || die
92         rm "plugins/mediaservice/libgstmediacapture.so" || die
93         rm "plugins/mediaservice/libgstmediaplayer.so" || die
94         rm "plugins/platforminputcontexts/libibusplatforminputcontextplugin.so" || die
95         rm "plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so" || die
96         rm "plugins/platforms/libqeglfs.so" || die
97         rm "plugins/platforms/libqlinuxfb.so" || die
98         rm "plugins/platforms/libqminimal.so" || die
99         rm "plugins/platforms/libqminimalegl.so" || die
100         rm "plugins/platforms/libqoffscreen.so" || die
101         rm "plugins/platforms/libqvnc.so" || die
102         rm "plugins/platformthemes/libqgtk3.so" || die
103         rm "plugins/playlistformats/libqtmultimedia_m3u.so" || die
104         rm "plugins/position/libqtposition_geoclue.so" || die
105         rm "plugins/position/libqtposition_positionpoll.so" || die
106         rm "plugins/printsupport/libcupsprintersupport.so" || die
107         rm "plugins/qmltooling/libqmldbg_inspector.so" || die
108         rm "plugins/qmltooling/libqmldbg_local.so" || die
109         rm "plugins/qmltooling/libqmldbg_messages.so" || die
110         rm "plugins/qmltooling/libqmldbg_native.so" || die
111         rm "plugins/qmltooling/libqmldbg_nativedebugger.so" || die
112         rm "plugins/qmltooling/libqmldbg_profiler.so" || die
113         rm "plugins/qmltooling/libqmldbg_quickprofiler.so" || die
114         rm "plugins/qmltooling/libqmldbg_server.so" || die
115         rm "plugins/qmltooling/libqmldbg_tcp.so" || die
116         rm "plugins/renderplugins/libscene2d.so" || die
117         rm "plugins/sceneparsers/libassimpsceneimport.so" || die
118         rm "plugins/sceneparsers/libgltfsceneexport.so" || die
119         rm "plugins/sceneparsers/libgltfsceneimport.so" || die
120         rm "plugins/sensorgestures/libqtsensorgestures_plugin.so" || die
121         rm "plugins/sensorgestures/libqtsensorgestures_shakeplugin.so" || die
122         rm "plugins/sensors/libqtsensors_generic.so" || die
123         rm "plugins/sensors/libqtsensors_iio-sensor-proxy.so" || die
124         rm "plugins/sensors/libqtsensors_linuxsys.so" || die
125         rm "plugins/sqldrivers/libqsqlite.so" || die
126         rm "plugins/sqldrivers/libqsqlmysql.so" || die
127         rm "plugins/sqldrivers/libqsqlpsql.so" || die
128         rm "plugins/xcbglintegrations/libqxcb-egl-integration.so" || die
129         rm "qml/Qt/labs/calendar/libqtlabscalendarplugin.so" || die
130         rm "qml/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so" || die
131         rm "qml/Qt/labs/platform/libqtlabsplatformplugin.so" || die
132         rm "qml/Qt/labs/settings/libqmlsettingsplugin.so" || die
133         rm "qml/Qt/labs/sharedimage/libsharedimageplugin.so" || die
134         rm "qml/Qt3D/Animation/libquick3danimationplugin.so" || die
135         rm "qml/Qt3D/Core/libquick3dcoreplugin.so" || die
136         rm "qml/Qt3D/Extras/libquick3dextrasplugin.so" || die
137         rm "qml/Qt3D/Input/libquick3dinputplugin.so" || die
138         rm "qml/Qt3D/Logic/libquick3dlogicplugin.so" || die
139         rm "qml/Qt3D/Render/libquick3drenderplugin.so" || die
140         rm "qml/QtBluetooth/libdeclarative_bluetooth.so" || die
141         rm "qml/QtCanvas3D/libqtcanvas3d.so" || die
142         rm "qml/QtGamepad/libdeclarative_gamepad.so" || die
143         rm "qml/QtLocation/libdeclarative_location.so" || die
144         rm "qml/QtMultimedia/libdeclarative_multimedia.so" || die
145         rm "qml/QtNfc/libdeclarative_nfc.so" || die
146         rm "qml/QtPositioning/libdeclarative_positioning.so" || die
147         rm "qml/QtQml/Models.2/libmodelsplugin.so" || die
148         rm "qml/QtQml/StateMachine/libqtqmlstatemachine.so" || die
149         rm "qml/QtQuick/Controls.2/Material/libqtquickcontrols2materialstyleplugin.so" || die
150         rm "qml/QtQuick/Controls.2/Universal/libqtquickcontrols2universalstyleplugin.so" || die
151         rm "qml/QtQuick/Controls/Styles/Flat/libqtquickextrasflatplugin.so" || die
152         rm "qml/QtQuick/Controls/libqtquickcontrolsplugin.so" || die
153         rm "qml/QtQuick/Dialogs/Private/libdialogsprivateplugin.so" || die
154         rm "qml/QtQuick/Dialogs/libdialogplugin.so" || die
155         rm "qml/QtQuick/Extras/libqtquickextrasplugin.so" || die
156         rm "qml/QtQuick/LocalStorage/libqmllocalstorageplugin.so" || die
157         rm "qml/QtQuick/Particles.2/libparticlesplugin.so" || die
158         rm "qml/QtQuick/PrivateWidgets/libwidgetsplugin.so" || die
159         rm "qml/QtQuick/Scene2D/libqtquickscene2dplugin.so" || die
160         rm "qml/QtQuick/Scene3D/libqtquickscene3dplugin.so" || die
161         rm "qml/QtQuick/XmlListModel/libqmlxmllistmodelplugin.so" || die
162         rm "qml/QtScxml/libdeclarative_scxml.so" || die
163         rm "qml/QtSensors/libdeclarative_sensors.so" || die
164         rm "qml/QtTest/libqmltestplugin.so" || die
165         rm "qml/QtWebChannel/libdeclarative_webchannel.so" || die
166         rm "qml/QtWebEngine/libqtwebengineplugin.so" || die
167         rm "qml/QtWebSockets/libdeclarative_qmlwebsockets.so" || die
168         rm "qml/QtWebView/libdeclarative_webview.so" || die
169         rm "lib/libQt5MultimediaGstTools.so.5" || die
170         rm "lib/libQt5OpenGL.so.5" || die
171         rm "lib/libQt5QuickWidgets.so.5" || die
172         rm "lib/libQt5EglFsKmsSupport.so.5" || die
173         rm "plugins/position/libqtposition_serialnmea.so" || die
174         rm "plugins/webview/libqtwebview_webengine.so" || die
175         rm "plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so" || die
176         rm "plugins/texttospeech/libqtexttospeech_speechd.so" || die
177         rm "plugins/canbus/libqtpassthrucanbus.so" || die
178         rm "qml/QtQuick/Shapes/libqmlshapesplugin.so" || die
179         rm "qml/QtQuick/Controls.2/Fusion/libqtquickcontrols2fusionstyleplugin.so" || die
180         rm "qml/QtQuick/Controls.2/Imagine/libqtquickcontrols2imaginestyleplugin.so" || die
181         rm "qml/QtQml/RemoteObjects/libqtqmlremoteobjects.so" || die
182         rm "qml/Qt/labs/location/liblocationlabsplugin.so" || die
183
184         default
185 }
186
187 src_install() {
188         # Using doins -r would strip executable bits from all binaries
189         cp -pPR usr "${D}"/ || die "Failed to copy files"
190
191         dosym "protonmail-bridge" "/usr/bin/${PN}"
192
193         insinto /etc/revdep-rebuild
194         newins - "50-${PN}" <<-EOF
195                 SEARCH_DIRS_MASK="/usr/lib*/protonmail/bridge"
196         EOF
197 }