From 761f2768cb076cfc81859f738a59ddfb27700fbc Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Thu, 21 Sep 2023 23:20:06 +0200 Subject: [PATCH 1/6] [#316] Added RPM dependencies. --- .../backend/assistant/google/manifest.yaml | 3 + platypush/backend/camera/pi/manifest.yaml | 3 + platypush/backend/file/monitor/manifest.yaml | 2 + platypush/backend/gps/manifest.yaml | 2 + platypush/backend/inotify/manifest.yaml | 2 + .../backend/joystick/jstest/manifest.yaml | 2 + platypush/backend/kafka/manifest.yaml | 2 + platypush/backend/log/http/manifest.yaml | 2 + platypush/backend/midi/manifest.yaml | 2 + platypush/backend/mqtt/manifest.yaml | 2 + platypush/backend/music/mpd/manifest.yaml | 2 + platypush/backend/music/spotify/manifest.yaml | 3 + platypush/backend/pushbullet/manifest.yaml | 2 + platypush/backend/scard/manifest.yaml | 6 +- platypush/backend/wiimote/manifest.yaml | 7 +- platypush/backend/zwave/mqtt/manifest.yaml | 2 + platypush/install/requirements/fedora.txt | 26 +++++++ platypush/message/event/covid19.py | 26 ------- .../assistant/google/pushtotalk/manifest.yaml | 3 + platypush/plugins/bluetooth/manifest.yaml | 3 + platypush/plugins/calendar/ical/manifest.yaml | 2 + platypush/plugins/camera/cv/manifest.yaml | 12 ++-- platypush/plugins/camera/ffmpeg/manifest.yaml | 12 ++-- .../plugins/camera/gstreamer/manifest.yaml | 15 ++-- .../plugins/camera/ir/mlx90640/manifest.yaml | 12 ++-- platypush/plugins/camera/pi/manifest.yaml | 9 ++- platypush/plugins/chat/irc/manifest.yaml | 2 + platypush/plugins/clipboard/manifest.yaml | 4 ++ platypush/plugins/covid19/__init__.py | 72 ------------------- platypush/plugins/covid19/manifest.yaml | 6 -- platypush/plugins/dbus/manifest.yaml | 3 + platypush/plugins/dropbox/manifest.yaml | 2 + platypush/plugins/ffmpeg/manifest.yaml | 2 + .../plugins/google/calendar/manifest.yaml | 4 ++ platypush/plugins/google/drive/manifest.yaml | 4 ++ platypush/plugins/google/fit/manifest.yaml | 4 ++ platypush/plugins/google/mail/manifest.yaml | 4 ++ platypush/plugins/google/maps/manifest.yaml | 4 ++ platypush/plugins/google/pubsub/manifest.yaml | 4 ++ .../plugins/google/translate/manifest.yaml | 4 ++ .../plugins/google/youtube/manifest.yaml | 4 ++ platypush/plugins/hid/manifest.yaml | 4 ++ .../plugins/http/request/rss/manifest.yaml | 10 ++- platypush/plugins/http/webpage/manifest.yaml | 4 ++ platypush/plugins/kafka/manifest.yaml | 6 +- platypush/plugins/lastfm/manifest.yaml | 2 + platypush/plugins/matrix/manifest.yaml | 4 ++ .../plugins/media/chromecast/manifest.yaml | 2 + .../plugins/media/gstreamer/manifest.yaml | 3 + platypush/plugins/media/mplayer/manifest.yaml | 2 + platypush/plugins/media/mpv/manifest.yaml | 2 + platypush/plugins/media/vlc/manifest.yaml | 3 + platypush/plugins/midi/manifest.yaml | 2 + platypush/plugins/ml/cv/manifest.yaml | 9 ++- platypush/plugins/mqtt/manifest.yaml | 6 +- platypush/plugins/music/mpd/manifest.yaml | 2 + platypush/plugins/otp/manifest.yaml | 2 + platypush/plugins/printer/cups/manifest.yaml | 2 + platypush/plugins/qrcode/manifest.yaml | 15 ++-- platypush/plugins/rss/manifest.yaml | 3 + platypush/plugins/rtorrent/manifest.yaml | 2 + platypush/plugins/serial/manifest.yaml | 2 + platypush/plugins/sound/manifest.yaml | 4 ++ platypush/plugins/ssh/manifest.yaml | 2 + .../plugins/stt/deepspeech/manifest.yaml | 2 + platypush/plugins/system/manifest.yaml | 2 + platypush/plugins/tensorflow/manifest.yaml | 9 ++- platypush/plugins/torrent/manifest.yaml | 2 + platypush/plugins/twilio/manifest.yaml | 2 + platypush/plugins/xmpp/manifest.yaml | 2 + platypush/plugins/zigbee/mqtt/manifest.yaml | 6 +- platypush/plugins/zwave/mqtt/manifest.yaml | 10 +-- 72 files changed, 267 insertions(+), 148 deletions(-) create mode 100644 platypush/install/requirements/fedora.txt delete mode 100644 platypush/message/event/covid19.py delete mode 100644 platypush/plugins/covid19/__init__.py delete mode 100644 platypush/plugins/covid19/manifest.yaml diff --git a/platypush/backend/assistant/google/manifest.yaml b/platypush/backend/assistant/google/manifest.yaml index 6de6807f..271582af 100644 --- a/platypush/backend/assistant/google/manifest.yaml +++ b/platypush/backend/assistant/google/manifest.yaml @@ -25,6 +25,9 @@ manifest: apt: - python3-grpcio - python3-google-auth + dnf: + - python-grpcio + - python-google-auth pacman: - python-grpcio - python-google-auth diff --git a/platypush/backend/camera/pi/manifest.yaml b/platypush/backend/camera/pi/manifest.yaml index e2c3b2c6..1a9b5690 100644 --- a/platypush/backend/camera/pi/manifest.yaml +++ b/platypush/backend/camera/pi/manifest.yaml @@ -4,6 +4,9 @@ manifest: apk: - py3-numpy - py3-pillow + dnf: + - python-numpy + - python-pillow pacman: - python-numpy - python-pillow diff --git a/platypush/backend/file/monitor/manifest.yaml b/platypush/backend/file/monitor/manifest.yaml index 2007e988..b504d5fe 100644 --- a/platypush/backend/file/monitor/manifest.yaml +++ b/platypush/backend/file/monitor/manifest.yaml @@ -8,6 +8,8 @@ manifest: - py3-watchdog apt: - python3-watchdog + dnf: + - python-watchdog pacman: - python-watchdog pip: diff --git a/platypush/backend/gps/manifest.yaml b/platypush/backend/gps/manifest.yaml index 818299f3..cb1879f5 100644 --- a/platypush/backend/gps/manifest.yaml +++ b/platypush/backend/gps/manifest.yaml @@ -10,6 +10,8 @@ manifest: - gpsd apt: - gpsd + dnf: + - gpsd pacman: - gpsd pip: diff --git a/platypush/backend/inotify/manifest.yaml b/platypush/backend/inotify/manifest.yaml index c42ae80f..d881d032 100644 --- a/platypush/backend/inotify/manifest.yaml +++ b/platypush/backend/inotify/manifest.yaml @@ -13,6 +13,8 @@ manifest: - py3-inotify apt: - python3-inotify + dnf: + - python-inotify pip: - inotify package: platypush.backend.inotify diff --git a/platypush/backend/joystick/jstest/manifest.yaml b/platypush/backend/joystick/jstest/manifest.yaml index a3c00db9..b4f94b68 100644 --- a/platypush/backend/joystick/jstest/manifest.yaml +++ b/platypush/backend/joystick/jstest/manifest.yaml @@ -17,6 +17,8 @@ manifest: - linuxconsoletools apt: - joystick + dnf: + - joystick pacman: - joyutils package: platypush.backend.joystick.jstest diff --git a/platypush/backend/kafka/manifest.yaml b/platypush/backend/kafka/manifest.yaml index 0f95774f..91cf8860 100644 --- a/platypush/backend/kafka/manifest.yaml +++ b/platypush/backend/kafka/manifest.yaml @@ -3,6 +3,8 @@ manifest: install: apt: - python3-kafka + dnf: + - python-kafka pip: - kafka package: platypush.backend.kafka diff --git a/platypush/backend/log/http/manifest.yaml b/platypush/backend/log/http/manifest.yaml index b9990a56..0b9cfa2c 100644 --- a/platypush/backend/log/http/manifest.yaml +++ b/platypush/backend/log/http/manifest.yaml @@ -6,6 +6,8 @@ manifest: - py3-watchdog apt: - python3-watchdog + dnf: + - python-watchdog pacman: - python-watchdog pip: diff --git a/platypush/backend/midi/manifest.yaml b/platypush/backend/midi/manifest.yaml index f86af540..990d0202 100644 --- a/platypush/backend/midi/manifest.yaml +++ b/platypush/backend/midi/manifest.yaml @@ -4,6 +4,8 @@ manifest: install: apt: - python3-rtmidi + dnf: + - python-rtmidi pacman: - rtmidi - python-rtmidi diff --git a/platypush/backend/mqtt/manifest.yaml b/platypush/backend/mqtt/manifest.yaml index db91a6ad..c1697bfe 100644 --- a/platypush/backend/mqtt/manifest.yaml +++ b/platypush/backend/mqtt/manifest.yaml @@ -5,6 +5,8 @@ manifest: install: apk: - py3-paho-mqtt + dnf: + - python-paho-mqtt pacman: - python-paho-mqtt apt: diff --git a/platypush/backend/music/mpd/manifest.yaml b/platypush/backend/music/mpd/manifest.yaml index 5fe8ed38..5d3328b6 100644 --- a/platypush/backend/music/mpd/manifest.yaml +++ b/platypush/backend/music/mpd/manifest.yaml @@ -12,6 +12,8 @@ manifest: install: apt: - python3-mpd2 + dnf: + - python-mpd2 pacman: - python-mpd2 pip: diff --git a/platypush/backend/music/spotify/manifest.yaml b/platypush/backend/music/spotify/manifest.yaml index 83e16714..aeafcf21 100644 --- a/platypush/backend/music/spotify/manifest.yaml +++ b/platypush/backend/music/spotify/manifest.yaml @@ -15,6 +15,9 @@ manifest: apt: - sudo - cargo + dnf: + - sudo + - cargo pacman: - sudo - cargo diff --git a/platypush/backend/pushbullet/manifest.yaml b/platypush/backend/pushbullet/manifest.yaml index e49e855a..5640c6c4 100644 --- a/platypush/backend/pushbullet/manifest.yaml +++ b/platypush/backend/pushbullet/manifest.yaml @@ -5,6 +5,8 @@ manifest: - git apt: - git + dnf: + - git pacman: - git install: diff --git a/platypush/backend/scard/manifest.yaml b/platypush/backend/scard/manifest.yaml index 41979eba..97164d68 100644 --- a/platypush/backend/scard/manifest.yaml +++ b/platypush/backend/scard/manifest.yaml @@ -5,10 +5,12 @@ manifest: install: apk: - py3-pyscard - pacman: - - python-pyscard apt: - python3-pyscard + dnf: + - python-pyscard + pacman: + - python-pyscard pip: - pyscard package: platypush.backend.scard diff --git a/platypush/backend/wiimote/manifest.yaml b/platypush/backend/wiimote/manifest.yaml index be82e7ba..b1f41b0c 100644 --- a/platypush/backend/wiimote/manifest.yaml +++ b/platypush/backend/wiimote/manifest.yaml @@ -3,6 +3,11 @@ manifest: platypush.message.event.wiimote.WiimoteEvent: when the state of the Wiimote (battery, buttons, acceleration etc.) changes install: - pip: [] + apt: + - libcwiid1 + pacman: + - cwiid-git + pip: + - cwiid package: platypush.backend.wiimote type: backend diff --git a/platypush/backend/zwave/mqtt/manifest.yaml b/platypush/backend/zwave/mqtt/manifest.yaml index dcf51ad4..f539c555 100644 --- a/platypush/backend/zwave/mqtt/manifest.yaml +++ b/platypush/backend/zwave/mqtt/manifest.yaml @@ -16,6 +16,8 @@ manifest: install: apk: - py3-paho-mqtt + dnf: + - python-paho-mqtt pacman: - python-paho-mqtt apt: diff --git a/platypush/install/requirements/fedora.txt b/platypush/install/requirements/fedora.txt new file mode 100644 index 00000000..2b364815 --- /dev/null +++ b/platypush/install/requirements/fedora.txt @@ -0,0 +1,26 @@ +python +python-pip +python-alembic +python-bcrypt +python-dateutil +python-docutils +python-flask +python-frozendict +python-greenlet +python-magic +python-marshmallow +python-mypy_extensions +python-psutil +python-pytz +python-redis +python-requests +python-rsa +python-sqlalchemy +python-tornado +python-websocket-client +python-websockets +python-wheel +python-yaml +python-zeroconf +redis +sudo diff --git a/platypush/message/event/covid19.py b/platypush/message/event/covid19.py deleted file mode 100644 index 849efa59..00000000 --- a/platypush/message/event/covid19.py +++ /dev/null @@ -1,26 +0,0 @@ -from datetime import datetime -from typing import Optional - -from platypush.message.event import Event - - -class Covid19UpdateEvent(Event): - def __init__(self, - confirmed: int, - deaths: int, - recovered: int, - country: Optional[str] = None, - country_code: Optional[str] = None, - update_time: Optional[datetime] = None, - *args, **kwargs): - super().__init__(*args, - confirmed=confirmed, - deaths=deaths, - recovered=recovered, - country=country, - country_code=country_code, - update_time=update_time, - **kwargs) - - -# vim:sw=4:ts=4:et: diff --git a/platypush/plugins/assistant/google/pushtotalk/manifest.yaml b/platypush/plugins/assistant/google/pushtotalk/manifest.yaml index a56335c2..dfb859d2 100644 --- a/platypush/plugins/assistant/google/pushtotalk/manifest.yaml +++ b/platypush/plugins/assistant/google/pushtotalk/manifest.yaml @@ -13,6 +13,9 @@ manifest: apt: - python3-tenacity - python3-google-auth + dnf: + - python-tenacity + - python-google-auth pacman: - python-tenacity - python-google-auth diff --git a/platypush/plugins/bluetooth/manifest.yaml b/platypush/plugins/bluetooth/manifest.yaml index 893d4e07..bbc9f851 100644 --- a/platypush/plugins/bluetooth/manifest.yaml +++ b/platypush/plugins/bluetooth/manifest.yaml @@ -20,6 +20,9 @@ manifest: - libbluetooth-dev - python3-pydbus - git + dnf: + - python-pydbus + - git pacman: - python-pydbus - python-bleak diff --git a/platypush/plugins/calendar/ical/manifest.yaml b/platypush/plugins/calendar/ical/manifest.yaml index 2d0db184..ea6256b5 100644 --- a/platypush/plugins/calendar/ical/manifest.yaml +++ b/platypush/plugins/calendar/ical/manifest.yaml @@ -5,6 +5,8 @@ manifest: - py3-icalendar apt: - python3-icalendar + dnf: + - python-icalendar pacman: - python-icalendar pip: diff --git a/platypush/plugins/camera/cv/manifest.yaml b/platypush/plugins/camera/cv/manifest.yaml index 79d042c6..c5af03d5 100644 --- a/platypush/plugins/camera/cv/manifest.yaml +++ b/platypush/plugins/camera/cv/manifest.yaml @@ -5,14 +5,18 @@ manifest: - py3-numpy - py3-pillow - py3-opencv - pacman: - - python-numpy - - python-pillow - - python-opencv apt: - python3-numpy - python3-pillow - python3-opencv + dnf: + - python-numpy + - python-pillow + - python-opencv + pacman: + - python-numpy + - python-pillow + - python-opencv pip: - numpy - opencv-python diff --git a/platypush/plugins/camera/ffmpeg/manifest.yaml b/platypush/plugins/camera/ffmpeg/manifest.yaml index 822ca154..5ba2be0c 100644 --- a/platypush/plugins/camera/ffmpeg/manifest.yaml +++ b/platypush/plugins/camera/ffmpeg/manifest.yaml @@ -5,14 +5,18 @@ manifest: - py3-numpy - py3-pillow - ffmpeg - pacman: - - python-numpy - - python-pillow - - ffmpeg apt: - python3-numpy - python3-pillow - ffmpeg + dnf: + - python-numpy + - python-pillow + - ffmpeg + pacman: + - python-numpy + - python-pillow + - ffmpeg pip: - numpy - Pillow diff --git a/platypush/plugins/camera/gstreamer/manifest.yaml b/platypush/plugins/camera/gstreamer/manifest.yaml index 7cb373f8..0c29e276 100644 --- a/platypush/plugins/camera/gstreamer/manifest.yaml +++ b/platypush/plugins/camera/gstreamer/manifest.yaml @@ -6,16 +6,21 @@ manifest: - py3-pillow - py3-gobject3 - py3-gst - pacman: - - python-numpy - - python-pillow - - gst-python - - python-gobject apt: - python3-numpy - python3-pillow - python3-gi - python3-gst-1.0 + dnf: + - python-numpy + - python-pillow + - python-gstreamer1 + - python-gobject + pacman: + - python-numpy + - python-pillow + - gst-python + - python-gobject pip: - numpy - Pillow diff --git a/platypush/plugins/camera/ir/mlx90640/manifest.yaml b/platypush/plugins/camera/ir/mlx90640/manifest.yaml index 5dbd0b96..b7faf8b8 100644 --- a/platypush/plugins/camera/ir/mlx90640/manifest.yaml +++ b/platypush/plugins/camera/ir/mlx90640/manifest.yaml @@ -5,14 +5,18 @@ manifest: - i2c-tools-dev - py3-numpy - py3-pillow - pacman: - - i2c-tools - - python-numpy - - python-pillow apt: - libi2c-dev - python3-numpy - python3-pillow + dnf: + - i2c-tools + - python-numpy + - python-pillow + pacman: + - i2c-tools + - python-numpy + - python-pillow pip: - numpy - Pillow diff --git a/platypush/plugins/camera/pi/manifest.yaml b/platypush/plugins/camera/pi/manifest.yaml index fecf8951..6675b950 100644 --- a/platypush/plugins/camera/pi/manifest.yaml +++ b/platypush/plugins/camera/pi/manifest.yaml @@ -4,12 +4,15 @@ manifest: apk: - py3-numpy - py3-pillow - pacman: - - python-numpy - - python-pillow apt: - python3-numpy - python3-pillow + dnf: + - python-numpy + - python-pillow + pacman: + - python-numpy + - python-pillow pip: - picamera - numpy diff --git a/platypush/plugins/chat/irc/manifest.yaml b/platypush/plugins/chat/irc/manifest.yaml index a4d57492..d64aeb4a 100644 --- a/platypush/plugins/chat/irc/manifest.yaml +++ b/platypush/plugins/chat/irc/manifest.yaml @@ -23,6 +23,8 @@ manifest: install: apt: - python3-irc + dnf: + - python-irc pacman: - python-irc pip: diff --git a/platypush/plugins/clipboard/manifest.yaml b/platypush/plugins/clipboard/manifest.yaml index 912eeb66..e152b51c 100644 --- a/platypush/plugins/clipboard/manifest.yaml +++ b/platypush/plugins/clipboard/manifest.yaml @@ -4,6 +4,10 @@ manifest: install: apk: - py3-pyclip + dnf: + - python-pyclip + pacman: + - python-pyclip pip: - pyclip package: platypush.plugins.clipboard diff --git a/platypush/plugins/covid19/__init__.py b/platypush/plugins/covid19/__init__.py deleted file mode 100644 index 964cf2b7..00000000 --- a/platypush/plugins/covid19/__init__.py +++ /dev/null @@ -1,72 +0,0 @@ -from typing import Optional, Union, List, Dict, Any - -import requests - -from platypush.plugins import Plugin, action - - -class Covid19Plugin(Plugin): - """ - Monitor the diffusion data of the COVID-19 pandemic by using the public API at https://api.covid19api.com. - """ - - base_url = 'https://api.covid19api.com' - - def __init__(self, country: Union[str, List[str]] = 'world', **kwargs): - """ - :param country: Default country (or list of countries) to retrieve the stats for. It can either be the full - country name or the country code. Special values: - - - ``world``: Get worldwide stats (default). - - ``all``: Get all the available stats. - """ - super().__init__(**kwargs) - self.country = [] - self.all_countries = requests.get('{}/countries'.format(self.base_url)).json() - self.country = self._get_countries(country) - - def _get_countries(self, country: Optional[Union[str, List[str]]] = None) -> List[str]: - country = country or self.country - if isinstance(country, str): - country = country.split(',') - lc_country = {c.lower() for c in country} - return [c['ISO2'] for c in self.all_countries - if c['ISO2'].lower() in lc_country - or c['Slug'].lower() in lc_country - or c['Country'].lower() in lc_country] - - @action - def summary(self, country: Optional[Union[str, List[str]]] = None) -> List[Dict[str, Any]]: - """ - Get the summary data for the world or a country. - - :param country: Default country override. - """ - countries = self._get_countries(country) - response = requests.get('{}/summary'.format(self.base_url)).json() - if countries[0] == 'all': - return response.get('Countries', []) - if countries[0] == 'world': - return response.get('Global', {}) - - return [ - c for c in response.get('Countries', []) - if c.get('CountryCode').upper() in countries - or c.get('Country').upper() in countries - ] - - @action - def data(self, country: Optional[Union[str, List[str]]] = None) -> List[Dict[str, Any]]: - """ - Get all the data for a country. - - :param country: Default country override. - """ - countries = self._get_countries(country) - ret = [] - for country in countries: - ret += requests.get('{}/total/country/{}'.format(self.base_url, country)).json() - return ret - - -# vim:sw=4:ts=4:et: diff --git a/platypush/plugins/covid19/manifest.yaml b/platypush/plugins/covid19/manifest.yaml deleted file mode 100644 index 2cdf8127..00000000 --- a/platypush/plugins/covid19/manifest.yaml +++ /dev/null @@ -1,6 +0,0 @@ -manifest: - events: {} - install: - pip: [] - package: platypush.plugins.covid19 - type: plugin diff --git a/platypush/plugins/dbus/manifest.yaml b/platypush/plugins/dbus/manifest.yaml index 2b1f3cdf..8d6df387 100644 --- a/platypush/plugins/dbus/manifest.yaml +++ b/platypush/plugins/dbus/manifest.yaml @@ -8,6 +8,9 @@ manifest: apt: - python3-pydbus - python3-defusedxml + dnf: + - python-pydbus + - python-defusedxml pacman: - python-pydbus - python-defusedxml diff --git a/platypush/plugins/dropbox/manifest.yaml b/platypush/plugins/dropbox/manifest.yaml index b91bab70..3f2e80e6 100644 --- a/platypush/plugins/dropbox/manifest.yaml +++ b/platypush/plugins/dropbox/manifest.yaml @@ -3,6 +3,8 @@ manifest: install: apt: - python3-dropbox + dnf: + - python-dropbox pacman: - python-dropbox pip: diff --git a/platypush/plugins/ffmpeg/manifest.yaml b/platypush/plugins/ffmpeg/manifest.yaml index ea08af1c..68aedeef 100644 --- a/platypush/plugins/ffmpeg/manifest.yaml +++ b/platypush/plugins/ffmpeg/manifest.yaml @@ -5,6 +5,8 @@ manifest: - ffmpeg apt: - ffmpeg + dnf: + - ffmpeg pacman: - ffmpeg - python-ffmpeg diff --git a/platypush/plugins/google/calendar/manifest.yaml b/platypush/plugins/google/calendar/manifest.yaml index 0811ce41..073f7480 100644 --- a/platypush/plugins/google/calendar/manifest.yaml +++ b/platypush/plugins/google/calendar/manifest.yaml @@ -8,6 +8,10 @@ manifest: apt: - python3-google-auth - python3-oauth2client + dnf: + - python-google-api-client + - python-google-auth + - python-oauth2client pacman: - python-google-api-python-client - python-google-auth diff --git a/platypush/plugins/google/drive/manifest.yaml b/platypush/plugins/google/drive/manifest.yaml index 6aeba8e7..6885a7fd 100644 --- a/platypush/plugins/google/drive/manifest.yaml +++ b/platypush/plugins/google/drive/manifest.yaml @@ -8,6 +8,10 @@ manifest: apt: - python3-google-auth - python3-oauth2client + dnf: + - python-google-api-client + - python-google-auth + - python-oauth2client pacman: - python-google-api-python-client - python-google-auth diff --git a/platypush/plugins/google/fit/manifest.yaml b/platypush/plugins/google/fit/manifest.yaml index 1458f3c3..d90a7f82 100644 --- a/platypush/plugins/google/fit/manifest.yaml +++ b/platypush/plugins/google/fit/manifest.yaml @@ -8,6 +8,10 @@ manifest: apt: - python3-google-auth - python3-oauth2client + dnf: + - python-google-api-client + - python-google-auth + - python-oauth2client pacman: - python-google-api-python-client - python-google-auth diff --git a/platypush/plugins/google/mail/manifest.yaml b/platypush/plugins/google/mail/manifest.yaml index a67529b8..3a2bc1da 100644 --- a/platypush/plugins/google/mail/manifest.yaml +++ b/platypush/plugins/google/mail/manifest.yaml @@ -8,6 +8,10 @@ manifest: apt: - python3-google-auth - python3-oauth2client + dnf: + - python-google-api-client + - python-google-auth + - python-oauth2client pacman: - python-google-api-python-client - python-google-auth diff --git a/platypush/plugins/google/maps/manifest.yaml b/platypush/plugins/google/maps/manifest.yaml index 188c5a98..0c8b747c 100644 --- a/platypush/plugins/google/maps/manifest.yaml +++ b/platypush/plugins/google/maps/manifest.yaml @@ -8,6 +8,10 @@ manifest: apt: - python3-google-auth - python3-oauth2client + dnf: + - python-google-api-client + - python-google-auth + - python-oauth2client pacman: - python-google-api-python-client - python-google-auth diff --git a/platypush/plugins/google/pubsub/manifest.yaml b/platypush/plugins/google/pubsub/manifest.yaml index ddf2469c..83c4fd77 100644 --- a/platypush/plugins/google/pubsub/manifest.yaml +++ b/platypush/plugins/google/pubsub/manifest.yaml @@ -8,6 +8,10 @@ manifest: apt: - python3-google-auth - python3-oauth2client + dnf: + - python-google-api-client + - python-google-auth + - python-oauth2client pacman: - python-google-api-python-client - python-google-auth diff --git a/platypush/plugins/google/translate/manifest.yaml b/platypush/plugins/google/translate/manifest.yaml index 1e2e45b0..f7256f76 100644 --- a/platypush/plugins/google/translate/manifest.yaml +++ b/platypush/plugins/google/translate/manifest.yaml @@ -8,6 +8,10 @@ manifest: apt: - python3-google-auth - python3-oauth2client + dnf: + - python-google-api-client + - python-google-auth + - python-oauth2client pacman: - python-google-api-python-client - python-google-auth diff --git a/platypush/plugins/google/youtube/manifest.yaml b/platypush/plugins/google/youtube/manifest.yaml index 464b8499..3308ed00 100644 --- a/platypush/plugins/google/youtube/manifest.yaml +++ b/platypush/plugins/google/youtube/manifest.yaml @@ -8,6 +8,10 @@ manifest: apt: - python3-google-auth - python3-oauth2client + dnf: + - python-google-api-client + - python-google-auth + - python-oauth2client pacman: - python-google-api-python-client - python-google-auth diff --git a/platypush/plugins/hid/manifest.yaml b/platypush/plugins/hid/manifest.yaml index f8ddbb95..ceb38a5c 100644 --- a/platypush/plugins/hid/manifest.yaml +++ b/platypush/plugins/hid/manifest.yaml @@ -4,8 +4,12 @@ manifest: platypush.message.event.hid.HidDeviceDisconnectedEvent: when a previously available device is disconnected platypush.message.event.hid.HidDeviceDataEvent: when a monitored device sends some data install: + apk: + - python3-hidapi apt: - python3-hid + dnf: + - python-hidapi pacman: - python-hid pip: diff --git a/platypush/plugins/http/request/rss/manifest.yaml b/platypush/plugins/http/request/rss/manifest.yaml index e16ae74e..fbe46f14 100644 --- a/platypush/plugins/http/request/rss/manifest.yaml +++ b/platypush/plugins/http/request/rss/manifest.yaml @@ -1,7 +1,15 @@ manifest: events: {} install: + apk: + - py3-feedparser + apt: + - python3-feedparser + dnf: + - python-feedparser + pacman: + - python-feedparser pip: - - feedparser + - feedparser package: platypush.plugins.http.request.rss type: plugin diff --git a/platypush/plugins/http/webpage/manifest.yaml b/platypush/plugins/http/webpage/manifest.yaml index c266b4ac..45d90698 100644 --- a/platypush/plugins/http/webpage/manifest.yaml +++ b/platypush/plugins/http/webpage/manifest.yaml @@ -9,6 +9,10 @@ manifest: - sudo - nodejs - npm + dnf: + - sudo + - nodejs + - npm pacman: - sudo - nodejs diff --git a/platypush/plugins/kafka/manifest.yaml b/platypush/plugins/kafka/manifest.yaml index 31134fcb..6804752e 100644 --- a/platypush/plugins/kafka/manifest.yaml +++ b/platypush/plugins/kafka/manifest.yaml @@ -3,7 +3,11 @@ manifest: platypush.message.event.kafka.KafkaMessageEvent: when a new message is received on the consumer topic. install: + apt: + - python-kafka + dnf: + - python-kafka pip: - - kafka + - kafka package: platypush.plugins.kafka type: plugin diff --git a/platypush/plugins/lastfm/manifest.yaml b/platypush/plugins/lastfm/manifest.yaml index bde5a3b9..9ea76891 100644 --- a/platypush/plugins/lastfm/manifest.yaml +++ b/platypush/plugins/lastfm/manifest.yaml @@ -5,6 +5,8 @@ manifest: - py3-pylast apt: - python3-pylast + dnf: + - python-pylast pacman: - python-pylast pip: diff --git a/platypush/plugins/matrix/manifest.yaml b/platypush/plugins/matrix/manifest.yaml index 47b0dcb7..9a397084 100644 --- a/platypush/plugins/matrix/manifest.yaml +++ b/platypush/plugins/matrix/manifest.yaml @@ -43,6 +43,10 @@ manifest: - olm-dev apt: - libolm-devel + - python3-async-lru + dnf: + - libolm-devel + - python-async-lru pacman: - libolm - python-async-lru diff --git a/platypush/plugins/media/chromecast/manifest.yaml b/platypush/plugins/media/chromecast/manifest.yaml index b976390a..a178fc49 100644 --- a/platypush/plugins/media/chromecast/manifest.yaml +++ b/platypush/plugins/media/chromecast/manifest.yaml @@ -5,6 +5,8 @@ manifest: - py3-pychromecast apt: - python3-pychromecast + dnf: + - python-chromecast pip: - pychromecast package: platypush.plugins.media.chromecast diff --git a/platypush/plugins/media/gstreamer/manifest.yaml b/platypush/plugins/media/gstreamer/manifest.yaml index 7e8f620d..fa98445a 100644 --- a/platypush/plugins/media/gstreamer/manifest.yaml +++ b/platypush/plugins/media/gstreamer/manifest.yaml @@ -7,6 +7,9 @@ manifest: apt: - python3-gi - python3-gst-1.0 + dnf: + - python-gstreamer1 + - python-gobject pacman: - gst-python - python-gobject diff --git a/platypush/plugins/media/mplayer/manifest.yaml b/platypush/plugins/media/mplayer/manifest.yaml index 298cfaba..b700ece2 100644 --- a/platypush/plugins/media/mplayer/manifest.yaml +++ b/platypush/plugins/media/mplayer/manifest.yaml @@ -5,6 +5,8 @@ manifest: - mplayer apt: - mplayer + dnf: + - mplayer pacman: - mplayer package: platypush.plugins.media.mplayer diff --git a/platypush/plugins/media/mpv/manifest.yaml b/platypush/plugins/media/mpv/manifest.yaml index 5f9ef72c..4fa6b91a 100644 --- a/platypush/plugins/media/mpv/manifest.yaml +++ b/platypush/plugins/media/mpv/manifest.yaml @@ -7,6 +7,8 @@ manifest: apt: - mpv - python3-mpv + dnf: + - mpv pacman: - mpv - python-mpv diff --git a/platypush/plugins/media/vlc/manifest.yaml b/platypush/plugins/media/vlc/manifest.yaml index 68ba56ce..5db883df 100644 --- a/platypush/plugins/media/vlc/manifest.yaml +++ b/platypush/plugins/media/vlc/manifest.yaml @@ -7,6 +7,9 @@ manifest: apt: - vlc - python3-vlc + dnf: + - vlc + - python3-vlc pacman: - vlc pip: diff --git a/platypush/plugins/midi/manifest.yaml b/platypush/plugins/midi/manifest.yaml index 87ff4a13..f78ea806 100644 --- a/platypush/plugins/midi/manifest.yaml +++ b/platypush/plugins/midi/manifest.yaml @@ -3,6 +3,8 @@ manifest: install: apt: - python3-rtmidi + dnf: + - python-rtmidi pacman: - python-rtmidi pip: diff --git a/platypush/plugins/ml/cv/manifest.yaml b/platypush/plugins/ml/cv/manifest.yaml index a838054c..f9f33dcc 100644 --- a/platypush/plugins/ml/cv/manifest.yaml +++ b/platypush/plugins/ml/cv/manifest.yaml @@ -4,12 +4,15 @@ manifest: apk: - py3-numpy - py3-opencv - pacman: - - python-numpy - - python-opencv apt: - python3-numpy - python3-opencv + dnf: + - python-numpy + - python-opencv + pacman: + - python-numpy + - python-opencv pip: - numpy - opencv-python diff --git a/platypush/plugins/mqtt/manifest.yaml b/platypush/plugins/mqtt/manifest.yaml index 9eb63c37..9359679a 100644 --- a/platypush/plugins/mqtt/manifest.yaml +++ b/platypush/plugins/mqtt/manifest.yaml @@ -4,10 +4,12 @@ manifest: install: apk: - py3-paho-mqtt - pacman: - - python-paho-mqtt apt: - python3-paho-mqtt + dnf: + - python-paho-mqtt + pacman: + - python-paho-mqtt pip: - paho-mqtt package: platypush.plugins.mqtt diff --git a/platypush/plugins/music/mpd/manifest.yaml b/platypush/plugins/music/mpd/manifest.yaml index b9d837d8..8e9f5a7d 100644 --- a/platypush/plugins/music/mpd/manifest.yaml +++ b/platypush/plugins/music/mpd/manifest.yaml @@ -3,6 +3,8 @@ manifest: install: apt: - python3-mpd + dnf: + - python3-mpd2 pacman: - python-mpd2 pip: diff --git a/platypush/plugins/otp/manifest.yaml b/platypush/plugins/otp/manifest.yaml index e256237c..b723bb02 100644 --- a/platypush/plugins/otp/manifest.yaml +++ b/platypush/plugins/otp/manifest.yaml @@ -5,6 +5,8 @@ manifest: - py3-otp apt: - python3-pyotp + dnf: + - python-pyotp pacman: - python-pyotp pip: diff --git a/platypush/plugins/printer/cups/manifest.yaml b/platypush/plugins/printer/cups/manifest.yaml index 9f7e4326..13d8fd85 100644 --- a/platypush/plugins/printer/cups/manifest.yaml +++ b/platypush/plugins/printer/cups/manifest.yaml @@ -6,6 +6,8 @@ manifest: apt: - libcups2-dev - python3-cups + dnf: + - python-cups pacman: - python-pycups pip: diff --git a/platypush/plugins/qrcode/manifest.yaml b/platypush/plugins/qrcode/manifest.yaml index 2cbea67e..4aab80eb 100644 --- a/platypush/plugins/qrcode/manifest.yaml +++ b/platypush/plugins/qrcode/manifest.yaml @@ -6,16 +6,21 @@ manifest: - py3-pillow - py3-qrcode - py3-pyzbar - pacman: - - python-numpy - - python-pillow - - python-qrcode - - pyzbar apt: - python3-numpy - python3-pillow - python3-pyzbar - python3-qrcode + dnf: + - python-numpy + - python-pillow + - python-qrcode + - python-zbar + pacman: + - python-numpy + - python-pillow + - python-qrcode + - pyzbar pip: - numpy - qrcode diff --git a/platypush/plugins/rss/manifest.yaml b/platypush/plugins/rss/manifest.yaml index d025ff16..2f987681 100644 --- a/platypush/plugins/rss/manifest.yaml +++ b/platypush/plugins/rss/manifest.yaml @@ -8,6 +8,9 @@ manifest: apt: - python3-feedparser - python3-defusedxml + dnf: + - python-feedparser + - python-defusedxml pacman: - python-feedparser - python-defusedxml diff --git a/platypush/plugins/rtorrent/manifest.yaml b/platypush/plugins/rtorrent/manifest.yaml index 88f7bd6b..11f4f48e 100644 --- a/platypush/plugins/rtorrent/manifest.yaml +++ b/platypush/plugins/rtorrent/manifest.yaml @@ -19,6 +19,8 @@ manifest: - rtorrent apt: - rtorrent + dnf: + - rtorrent pacman: - rtorrent package: platypush.plugins.rtorrent diff --git a/platypush/plugins/serial/manifest.yaml b/platypush/plugins/serial/manifest.yaml index 2756fc83..3c34b954 100644 --- a/platypush/plugins/serial/manifest.yaml +++ b/platypush/plugins/serial/manifest.yaml @@ -6,6 +6,8 @@ manifest: - py3-pyserial apt: - python3-serial + dnf: + - python-pyserial pacman: - python-pyserial pip: diff --git a/platypush/plugins/sound/manifest.yaml b/platypush/plugins/sound/manifest.yaml index 6facfed2..5396ed48 100644 --- a/platypush/plugins/sound/manifest.yaml +++ b/platypush/plugins/sound/manifest.yaml @@ -17,6 +17,10 @@ manifest: - ffmpeg - portaudio19-dev - python3-numpy + dnf: + - ffmpeg + - portaudio-devel + - python-numpy pacman: - ffmpeg - portaudio diff --git a/platypush/plugins/ssh/manifest.yaml b/platypush/plugins/ssh/manifest.yaml index f50e395f..78c5f1fe 100644 --- a/platypush/plugins/ssh/manifest.yaml +++ b/platypush/plugins/ssh/manifest.yaml @@ -5,6 +5,8 @@ manifest: - py3-paramiko apt: - python3-paramiko + dnf: + - python-paramiko pacman: - python-paramiko pip: diff --git a/platypush/plugins/stt/deepspeech/manifest.yaml b/platypush/plugins/stt/deepspeech/manifest.yaml index e5d0a2b2..3fd7dbd7 100644 --- a/platypush/plugins/stt/deepspeech/manifest.yaml +++ b/platypush/plugins/stt/deepspeech/manifest.yaml @@ -8,6 +8,8 @@ manifest: - python-sounddevice apt: - python3-numpy + dnf: + - python-numpy pip: - deepspeech - numpy diff --git a/platypush/plugins/system/manifest.yaml b/platypush/plugins/system/manifest.yaml index c0620487..bd7a9317 100644 --- a/platypush/plugins/system/manifest.yaml +++ b/platypush/plugins/system/manifest.yaml @@ -5,6 +5,8 @@ manifest: - py3-py-cpuinfo apt: - python3-cpuinfo + dnf: + - python-cpuinfo pacman: - python-py-cpuinfo pip: diff --git a/platypush/plugins/tensorflow/manifest.yaml b/platypush/plugins/tensorflow/manifest.yaml index 18994901..28a7cc42 100644 --- a/platypush/plugins/tensorflow/manifest.yaml +++ b/platypush/plugins/tensorflow/manifest.yaml @@ -16,14 +16,17 @@ manifest: apk: - py3-numpy - py3-pandas + apt: + - python3-numpy + - python3-pandas + dnf: + - python3-numpy + - python3-pandas pacman: - python-numpy - python-pandas - python-tensorflow - python-keras - apt: - - python3-numpy - - python3-pandas pip: - numpy - pandas diff --git a/platypush/plugins/torrent/manifest.yaml b/platypush/plugins/torrent/manifest.yaml index 5e3eda86..d4ddc335 100644 --- a/platypush/plugins/torrent/manifest.yaml +++ b/platypush/plugins/torrent/manifest.yaml @@ -5,6 +5,8 @@ manifest: - py3-libtorrent-rasterbar apt: - python3-libtorrent + dnf: + - rb_libtorrent-python3 pacman: - libtorrent-rasterbar pip: diff --git a/platypush/plugins/twilio/manifest.yaml b/platypush/plugins/twilio/manifest.yaml index 0ad570b9..48e4c99a 100644 --- a/platypush/plugins/twilio/manifest.yaml +++ b/platypush/plugins/twilio/manifest.yaml @@ -3,6 +3,8 @@ manifest: install: apt: - python3-twilio + dnf: + - python-twilio pip: - twilio package: platypush.plugins.twilio diff --git a/platypush/plugins/xmpp/manifest.yaml b/platypush/plugins/xmpp/manifest.yaml index 009fce8b..1e475c67 100644 --- a/platypush/plugins/xmpp/manifest.yaml +++ b/platypush/plugins/xmpp/manifest.yaml @@ -34,6 +34,8 @@ manifest: apt: - python3-aioxmpp - python3-tz + dnf: + - python-pytz pacman: - python-pytz pip: diff --git a/platypush/plugins/zigbee/mqtt/manifest.yaml b/platypush/plugins/zigbee/mqtt/manifest.yaml index 6a47dd35..60fb1a4d 100644 --- a/platypush/plugins/zigbee/mqtt/manifest.yaml +++ b/platypush/plugins/zigbee/mqtt/manifest.yaml @@ -41,10 +41,12 @@ manifest: install: apk: - py3-paho-mqtt - pacman: - - python-paho-mqtt apt: - python3-paho-mqtt + dnf: + - python-paho-mqtt + pacman: + - python-paho-mqtt pip: - paho-mqtt package: platypush.plugins.zigbee.mqtt diff --git a/platypush/plugins/zwave/mqtt/manifest.yaml b/platypush/plugins/zwave/mqtt/manifest.yaml index c92540d9..9bfe9b4e 100644 --- a/platypush/plugins/zwave/mqtt/manifest.yaml +++ b/platypush/plugins/zwave/mqtt/manifest.yaml @@ -17,12 +17,14 @@ manifest: platypush.message.event.zwave.ZwaveValueChangedEvent: > when the value of a node on the network changes. install: - apk: - - py3-paho-mqtt - pacman: - - python-paho-mqtt apt: - python3-paho-mqtt + apk: + - py3-paho-mqtt + dnf: + - python-paho-mqtt + pacman: + - python-paho-mqtt pip: - paho-mqtt package: platypush.plugins.zwave.mqtt From a872d6f55498142daad2286a1ff21ac10a0221ad Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Fri, 22 Sep 2023 19:02:13 +0200 Subject: [PATCH 2/6] Added Fedora to the available Docker base images. --- platypush/install/docker/fedora.Dockerfile | 26 +++++++++++++++++++ platypush/install/scripts/fedora/PKGCMD | 1 + platypush/install/scripts/fedora/install.sh | 28 +++++++++++++++++++++ platypush/platydock/__init__.py | 1 + platypush/utils/manifest.py | 10 ++++++++ 5 files changed, 66 insertions(+) create mode 100644 platypush/install/docker/fedora.Dockerfile create mode 100644 platypush/install/scripts/fedora/PKGCMD create mode 100755 platypush/install/scripts/fedora/install.sh diff --git a/platypush/install/docker/fedora.Dockerfile b/platypush/install/docker/fedora.Dockerfile new file mode 100644 index 00000000..d355f8d7 --- /dev/null +++ b/platypush/install/docker/fedora.Dockerfile @@ -0,0 +1,26 @@ +FROM fedora + +ADD . /install +WORKDIR /var/lib/platypush + +ARG DOCKER_CTX=1 +ENV DOCKER_CTX=1 + +# Enable the RPM Fusion repository +RUN dnf install -y \ + https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm + +RUN /install/platypush/install/scripts/fedora/install.sh +RUN cd /install && pip install -U --no-input --no-cache-dir . +RUN rm -rf /install +RUN dnf clean all -y + +EXPOSE 8008 + +VOLUME /etc/platypush +VOLUME /var/lib/platypush + +CMD platypush \ + --start-redis \ + --config /etc/platypush/config.yaml \ + --workdir /var/lib/platypush diff --git a/platypush/install/scripts/fedora/PKGCMD b/platypush/install/scripts/fedora/PKGCMD new file mode 100644 index 00000000..6d37a395 --- /dev/null +++ b/platypush/install/scripts/fedora/PKGCMD @@ -0,0 +1 @@ +dnf install -y diff --git a/platypush/install/scripts/fedora/install.sh b/platypush/install/scripts/fedora/install.sh new file mode 100755 index 00000000..5eb68826 --- /dev/null +++ b/platypush/install/scripts/fedora/install.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +# This script parses the system requirements for a specific OS and it runs the +# appropriate package manager command to install them. + +# This script is usually symlinked in the folders of the individual operating +# systems, and it's not supposed to be invoked directly. +# Instead, it will be called either by the root install.sh script or by a +# Dockerfile. + +SCRIPT_PATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" +OS="$(basename "$SCRIPT_PATH")" +CMD="$(cat "${SCRIPT_PATH}/PKGCMD")" +REQUIREMENTS="$(cat "${SCRIPT_PATH}/../../requirements/${OS}.txt" | tr '\n' ' ')" +SUDO= + +# If we aren't running in a Docker context, or the user is not root, we should +# use sudo to install system packages. +if [ $(id -u) -ne 0 ] || [ -z "$DOCKER_CTX" ]; then + if ! type sudo >/dev/null; then + echo "sudo executable not found, I can't install system packages" >&2 + exit 1 + fi + + SUDO="sudo" +fi + +${SUDO_ARGS} ${CMD} ${REQUIREMENTS} diff --git a/platypush/platydock/__init__.py b/platypush/platydock/__init__.py index ed97dbff..638e2a95 100755 --- a/platypush/platydock/__init__.py +++ b/platypush/platydock/__init__.py @@ -35,6 +35,7 @@ class DockerBuilder(BaseBuilder): _pkg_manager_by_base_image = { BaseImage.ALPINE: PackageManagers.APK, BaseImage.DEBIAN: PackageManagers.APT, + BaseImage.FEDORA: PackageManagers.DNF, BaseImage.UBUNTU: PackageManagers.APT, } diff --git a/platypush/utils/manifest.py b/platypush/utils/manifest.py index 421fead4..8ca22046 100644 --- a/platypush/utils/manifest.py +++ b/platypush/utils/manifest.py @@ -42,6 +42,7 @@ class BaseImage(Enum): ALPINE = 'alpine' DEBIAN = 'debian' + FEDORA = 'fedora' UBUNTU = 'ubuntu' def __str__(self) -> str: @@ -129,6 +130,15 @@ class PackageManagers(Enum): parse_list_line=lambda line: line.split('/')[0], ) + DNF = PackageManager( + executable='dnf', + install=('dnf', 'install', '-y'), + uninstall=('dnf', 'remove', '-y'), + list=('dnf', 'list', '--installed'), + default_os='fedora', + parse_list_line=lambda line: re.split(r'\s+', line)[0].split('.')[0], + ) + PACMAN = PackageManager( executable='pacman', install=('pacman', '-S', '--noconfirm', '--needed'), From b797add90d2fc91f772086e01620f86ef9f0fc0b Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Sat, 23 Sep 2023 16:16:13 +0200 Subject: [PATCH 3/6] Modify shebang header for Mercury JS script. The RPM build process wants an absolute path. --- platypush/plugins/http/webpage/mercury-parser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platypush/plugins/http/webpage/mercury-parser.js b/platypush/plugins/http/webpage/mercury-parser.js index adf7cc40..d05c8a8f 100755 --- a/platypush/plugins/http/webpage/mercury-parser.js +++ b/platypush/plugins/http/webpage/mercury-parser.js @@ -1,4 +1,4 @@ -#!node +#!/usr/bin/node // This script will parse the content and title of a webpage using the // mercury-parser JavaScript library (https://github.com/postlight/mercury-parser) From 2b981f6b6835631f948102ac2cbd8bdf8b3929ce Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Sat, 23 Sep 2023 16:20:28 +0200 Subject: [PATCH 4/6] Added python-croniter dependency to Fedora. Plus, some clean up of the variables on .drone.yaml. --- .drone.yml | 11 ++++------- platypush/install/requirements/fedora.txt | 1 + 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.drone.yml b/.drone.yml index 09c938ff..588fee1a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -273,10 +273,9 @@ steps: environment: DEB_VERSION: stable WORKDIR: /tmp/workdir - STABLE_PKG_NAME: platypush PKG_NAME: platypush S3_URL: s3://platypush-pkg/apt - AWS_ENDPOINT_URL: https://s3.nl-ams.scw.cloud + AWS_ENDPOINT_URL: https://s3.nl-ams.scw.cloud AWS_DEFAULT_REGION: nl-ams AWS_ACCESS_KEY_ID: from_secret: aws_access_key_id @@ -368,10 +367,9 @@ steps: environment: DEB_VERSION: oldstable WORKDIR: /tmp/workdir - STABLE_PKG_NAME: platypush PKG_NAME: platypush S3_URL: s3://platypush-pkg/apt - AWS_ENDPOINT_URL: https://s3.nl-ams.scw.cloud + AWS_ENDPOINT_URL: https://s3.nl-ams.scw.cloud AWS_DEFAULT_REGION: nl-ams AWS_ACCESS_KEY_ID: from_secret: aws_access_key_id @@ -464,7 +462,7 @@ steps: environment: S3_BUCKET: platypush-pkg BUCKET_MNT: /mnt/s3 - AWS_ENDPOINT_URL: https://s3.nl-ams.scw.cloud + AWS_ENDPOINT_URL: https://s3.nl-ams.scw.cloud AWS_DEFAULT_REGION: nl-ams AWS_ACCESS_KEY_ID: from_secret: aws_access_key_id @@ -614,10 +612,10 @@ steps: - master event: - push - - tag depends_on: - update-arch-packages + - update-rpm-repo - update-apt-repo commands: @@ -639,7 +637,6 @@ steps: depends_on: - update-pip-package - - wait-pkg-update commands: - apk add --update --no-cache curl diff --git a/platypush/install/requirements/fedora.txt b/platypush/install/requirements/fedora.txt index 2b364815..56b14259 100644 --- a/platypush/install/requirements/fedora.txt +++ b/platypush/install/requirements/fedora.txt @@ -2,6 +2,7 @@ python python-pip python-alembic python-bcrypt +python-croniter python-dateutil python-docutils python-flask From f6dea0b4d44c92699704ac5d0f5f6d299d18aec3 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Sat, 23 Sep 2023 16:21:00 +0200 Subject: [PATCH 5/6] Added RPM update step to Drone CI pipeline. Closes: #316. --- .drone.yml | 196 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 196 insertions(+) diff --git a/.drone.yml b/.drone.yml index 588fee1a..9cfc75f2 100644 --- a/.drone.yml +++ b/.drone.yml @@ -574,6 +574,202 @@ steps: cat "$file" | gpg -q --default-key "$PGP_KEYID" -abs --clearsign > "$dirname/InRelease" done +### +### Update the RPM (stable) packages +### + +- name: update-rpm-repo + image: fedora + privileged: true # Required to use the FUSE module for s3fs + environment: + RPM_VERSION: stable + WORKDIR: /tmp/workdir + PKG_NAME: platypush + S3_BUCKET: platypush-pkg + BUCKET_MNT: /mnt/s3 + AWS_ENDPOINT_URL: https://s3.nl-ams.scw.cloud + AWS_DEFAULT_REGION: nl-ams + AWS_ACCESS_KEY_ID: + from_secret: aws_access_key_id + AWS_SECRET_ACCESS_KEY: + from_secret: aws_secret_access_key + PGP_PUBKEY: + from_secret: rpm_pgp_pub_key + PGP_PRIVKEY: + from_secret: rpm_pgp_priv_key + + when: + branch: + - master + event: + - push + + depends_on: + - build-ui + + commands: + - echo "-- Installing dependencies" + - yum install -y createrepo rpm-build rpm-sign gpg wget yum-utils git python python-pip s3fs-fuse + + - echo "-- Copying source directory" + - mkdir -p "$WORKDIR" + - export SRCDIR="$WORKDIR/src" + - cp -r "$PWD" "$SRCDIR" + - cd "$SRCDIR" + + - echo "-- Mounting the S3 bucket" + - mkdir -p "$BUCKET_MNT" + - s3fs "$S3_BUCKET" "$BUCKET_MNT" -o url="$AWS_ENDPOINT_URL" + - export RPM_ROOT="$BUCKET_MNT/rpm" + - mkdir -p "$RPM_ROOT" + + - echo "--- Parsing metadata" + - git config --global --add safe.directory $PWD + - git pull --rebase origin master --tags + - export VERSION=$(python3 setup.py --version) + - export RELNUM=$(git log --pretty=oneline HEAD...v$VERSION | wc -l) + - export SPECFILE="$WORKDIR/$PKG_NAME.spec" + - export BUILD_DIR="$WORKDIR/build" + - export TMP_RPM_ROOT="$WORKDIR/repo" + - export SRC_URL="https://git.platypush.tech/platypush/platypush/archive/master.tar.gz" + + - echo "--- Creating git package spec" + - | + cat < $SPECFILE + Summary: Universal command executor and automation hub. + Name: $PKG_NAME-git + Version: $VERSION + Release: $RELNUM + URL: https://platypush.tech + Group: System + License: MIT + Packager: Fabio Manganiello + Source: $SRC_URL + Requires: $(cat platypush/install/requirements/fedora.txt | tr '\n' ' ') + Conflicts: $PKG_NAME + Prefix: %{_prefix} + BuildRoot: %{_tmppath}/%{name}-root + + %description + Universal command executor and automation hub. + + %install + mkdir -p %{buildroot}/ + cp -r "$BUILD_DIR"/* %{buildroot}/ + + %clean + + %files + /usr/bin/* + /usr/lib/python$(python3 --version | awk '{print $2}' | cut -d. -f 1,2)/site-packages/platypush + /usr/lib/python$(python3 --version | awk '{print $2}' | cut -d. -f 1,2)/site-packages/platypush-$VERSION.dist-info + + %changelog + * $(date +'%a %b %d %Y') admin + - [Automatic] Release $VERSION-$RELNUM + EOF + + - echo "--- Building git package" + - mkdir -p "$BUILD_DIR" + - pip install --prefix="$BUILD_DIR/usr" --no-cache --no-deps . + - rpmbuild --target "noarch" -bb "$SPECFILE" + + - echo "--- Copying the new RPM package" + - mkdir -p "$TMP_RPM_ROOT" + - cp "$HOME/rpmbuild/RPMS/noarch/$PKG_NAME-git-$VERSION-$RELNUM.noarch.rpm" "$TMP_RPM_ROOT" + + - echo "--- Checking the latest released stable version" + - export LATEST_STABLE_PKG=$(ls -rt "$RPM_ROOT/$PKG_NAME"*.rpm 2>/dev/null | grep -v "$PKG_NAME-git" | tail -1) + - | + if [ -z "$LATEST_STABLE_PKG" ]; then + # If not stable release is available, then create one + export UPDATE_STABLE_PKG=1 + else + # Otherwise, create a new release if the reported version on the repo is different + # from the latest released version. + export LATEST_STABLE_VERSION=$(basename $LATEST_STABLE_PKG | cut -d- -f 2) + if [ "$VERSION" != "$LATEST_STABLE_VERSION" ]; then + export UPDATE_STABLE_PKG=1 + else + # If the version has remained the same, then simply copy the existing RPM to the + # new repository directory. + echo "Copying the existing release $LATEST_STABLE_VERSION to the new repository" + cp "$LATEST_STABLE_PKG" "$TMP_RPM_ROOT" + fi + fi + + # If a new stable release is required, build another RPM + - | + if [ -n "$UPDATE_STABLE_PKG" ]; then + export RELNUM=1 + export SRC_URL="https://git.platypush.tech/platypush/platypush/archive/v$VERSION.tar.gz" + + cat < $SPECFILE + Summary: Universal command executor and automation hub. + Name: $PKG_NAME + Version: $VERSION + Release: $RELNUM + URL: https://platypush.tech + Group: System + License: MIT + Packager: Fabio Manganiello + Source: $SRC_URL + Requires: $(cat platypush/install/requirements/fedora.txt | tr '\n' ' ') + Conflicts: $PKG_NAME-git + Prefix: %{_prefix} + BuildRoot: %{_tmppath}/%{name}-root + + %description + Universal command executor and automation hub. + + %install + mkdir -p %{buildroot}/ + cp -r "$BUILD_DIR"/* %{buildroot}/ + + %clean + + %files + /usr/bin/* + /usr/lib/python$(python3 --version | awk '{print $2}' | cut -d. -f 1,2)/site-packages/platypush + /usr/lib/python$(python3 --version | awk '{print $2}' | cut -d. -f 1,2)/site-packages/platypush-$VERSION.dist-info + + %changelog + * $(date +'%a %b %d %Y') admin + - [Automatic] Release $VERSION-$RELNUM + EOF + + echo "--- Building package for stable release $VERSION" + rpmbuild --target "noarch" -bb "$SPECFILE" + cp "$HOME/rpmbuild/RPMS/noarch/$PKG_NAME-$VERSION-$RELNUM.noarch.rpm" "$TMP_RPM_ROOT" + fi + + - echo "--- Importing the repository keys" + - | + cat < $HOME/.rpmmacros + %signature gpg + %_gpg_name $PGP_KEYID + EOF + + - echo "--- Signing the new RPM packages" + - rpm --addsign "$TMP_RPM_ROOT"/*.rpm + + - echo "--- Creating a new copy of the RPM repository" + - createrepo "$TMP_RPM_ROOT" + - gpg --detach-sign --armor "$TMP_RPM_ROOT/repodata/repomd.xml" + + - echo "--- Updating the S3 bucket" + - export NEW_RPM_ROOT="$BUCKET_MNT/rpm_new" + - export OLD_RPM_ROOT="$BUCKET_MNT/rpm_old" + - mv "$TMP_RPM_ROOT" "$NEW_RPM_ROOT" + - mv "$RPM_ROOT" "$OLD_TMP_ROOT" + - mv "$NEW_RPM_ROOT" "$RPM_ROOT" + - rm -rf "$OLD_TMP_ROOT" + ### ### Updates the pip package upon new releases ### From ad2ee75c99f7a16c96c62fa32d0b0f4bc12edd0e Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Sat, 23 Sep 2023 16:24:04 +0200 Subject: [PATCH 6/6] Updated docs --- docs/source/events.rst | 1 - docs/source/platypush/events/covid19.rst | 5 ----- docs/source/platypush/plugins/covid19.rst | 5 ----- docs/source/plugins.rst | 1 - 4 files changed, 12 deletions(-) delete mode 100644 docs/source/platypush/events/covid19.rst delete mode 100644 docs/source/platypush/plugins/covid19.rst diff --git a/docs/source/events.rst b/docs/source/events.rst index fe4fe71e..02c76349 100644 --- a/docs/source/events.rst +++ b/docs/source/events.rst @@ -16,7 +16,6 @@ Events platypush/events/chat.slack.rst platypush/events/chat.telegram.rst platypush/events/clipboard.rst - platypush/events/covid19.rst platypush/events/custom.rst platypush/events/dbus.rst platypush/events/distance.rst diff --git a/docs/source/platypush/events/covid19.rst b/docs/source/platypush/events/covid19.rst deleted file mode 100644 index 4ea16995..00000000 --- a/docs/source/platypush/events/covid19.rst +++ /dev/null @@ -1,5 +0,0 @@ -``covid19`` -=================================== - -.. automodule:: platypush.message.event.covid19 - :members: diff --git a/docs/source/platypush/plugins/covid19.rst b/docs/source/platypush/plugins/covid19.rst deleted file mode 100644 index c3c1814a..00000000 --- a/docs/source/platypush/plugins/covid19.rst +++ /dev/null @@ -1,5 +0,0 @@ -``covid19`` -============================= - -.. automodule:: platypush.plugins.covid19 - :members: diff --git a/docs/source/plugins.rst b/docs/source/plugins.rst index d256faa0..a585a7a7 100644 --- a/docs/source/plugins.rst +++ b/docs/source/plugins.rst @@ -27,7 +27,6 @@ Plugins platypush/plugins/chat.telegram.rst platypush/plugins/clipboard.rst platypush/plugins/config.rst - platypush/plugins/covid19.rst platypush/plugins/csv.rst platypush/plugins/db.rst platypush/plugins/dbus.rst