Skip to content

Commit 15d90f3

Browse files
committed
moved plugins with binary components to this repo
The main goal is to separate pure python plugins from the ones that include a binary component. The first can go in the "all" feed, the second have to go in the TUNE_ARCH feed.
0 parents  commit 15d90f3

File tree

426 files changed

+92638
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

426 files changed

+92638
-0
lines changed

.github/workflows/ci.yml

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: plugins ci
2+
3+
on:
4+
push:
5+
paths-ignore:
6+
- 'COPYING'
7+
- 'README.md'
8+
- '**.info'
9+
- '**.txt'
10+
- '*/CONTROL/*'
11+
pull_request:
12+
paths-ignore:
13+
- 'COPYING'
14+
- 'README.md'
15+
- '**.info'
16+
- '**.txt'
17+
- '*/CONTROL/*'
18+
19+
jobs:
20+
build:
21+
runs-on: ubuntu-22.04
22+
steps:
23+
- uses: actions/checkout@v3
24+
with:
25+
fetch-depth: 0
26+
- name: Install python 3.11
27+
uses: actions/setup-python@v4
28+
with:
29+
python-version: '3.11'
30+
- name: Install python packages
31+
run: |
32+
pip install flake8
33+
- name: Install dev packages
34+
run: |
35+
sudo apt install gettext python3.11-dev
36+
- name: Build plugins
37+
env:
38+
CC: "gcc-10"
39+
CXX: "g++-10"
40+
run: |
41+
autoreconf -i
42+
./configure CFLAGS=-I/usr/include/tirpc
43+
make
44+
python -O -m compileall .
45+
- name: Check code changes
46+
uses: dorny/paths-filter@v2
47+
id: filter
48+
with:
49+
base: python3
50+
list-files: shell
51+
filters: |
52+
mod:
53+
- added|modified: '**.py'
54+
- name: Lint changed code
55+
continue-on-error: true
56+
if: ${{ steps.filter.outputs.mod == 'true' }}
57+
run: |
58+
mod_files="${{ steps.filter.outputs.mod_files }}"
59+
flake8 --ignore=E126,E127,E128,E501,W191 --builtins="_,ngettext,pgettext" --show-source --filename=./${mod_files// /,.\/}

.gitignore

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
aclocal.m4
2+
autom4te.cache/
3+
config.guess
4+
config.log
5+
config.sub
6+
config.status
7+
configure
8+
depcomp
9+
enigma2-plugins-config.h
10+
enigma2-plugins-config.h.in
11+
index-enigma2-plugins.xml
12+
install-sh
13+
libtool
14+
ltmain.sh
15+
Makefile
16+
Makefile.in
17+
m4/libtool.m4
18+
m4/lt~obsolete.m4
19+
m4/ltoptions.m4
20+
m4/ltsugar.m4
21+
m4/ltversion.m4
22+
missing
23+
py-compile
24+
stamp-h1
25+
.deps/
26+
.libs/
27+
.settings/
28+
*.la
29+
*.lo
30+
*.mo
31+
*.o
32+
.vscode/

.project

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>enigma2-plugins</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
<buildCommand>
14+
<name>org.python.pydev.PyDevBuilder</name>
15+
<arguments>
16+
</arguments>
17+
</buildCommand>
18+
</buildSpec>
19+
<natures>
20+
<nature>org.python.pydev.pythonNature</nature>
21+
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
22+
</natures>
23+
</projectDescription>

.pydevproject

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<?eclipse-pydev version="1.0"?>
3+
4+
<pydev_project>
5+
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
6+
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.6</pydev_property>
7+
</pydev_project>

COPYING

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
see individual plugins.

Makefile.am

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
ACLOCAL_AMFLAGS = -I m4
2+
3+
SUBDIRS = \
4+
lcd4linux \
5+
moviecut \
6+
networkbrowser \
7+
vps
8+
9+
metadir = $(datadir)/meta
10+
meta_DATA = index-enigma2-plugins.xml
11+
CLEANFILES = index-enigma2-plugins.xml
12+
13+
index-enigma2-plugins.xml: $(top_srcdir)/genmetaindex.py $(top_srcdir)/*/meta/plugin_*.xml
14+
$(AM_V_GEN)$(PYTHON) $^ > $@

README.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
OpenPLi enigma2 plugins
2+
-------
3+
[![plugins ci](https://github.com/OpenPLi/enigma2-plugins/actions/workflows/ci.yml/badge.svg)](https://github.com/OpenPLi/enigma2-plugins/actions/workflows/ci.yml)

Rules-cpp.mak

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
AM_CFLAGS = \
2+
-Wall \
3+
@DEBUG_CFLAGS@
4+
5+
AM_CPPFLAGS = \
6+
@PYTHON_CPPFLAGS@ \
7+
-include Python.h \
8+
-include enigma2-plugins-config.h
9+
10+
AM_CXXFLAGS = \
11+
-Wall \
12+
@DEBUG_CFLAGS@ \
13+
@PTHREAD_CFLAGS@

Rules-po.mak

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
CATEGORY ?= "Extensions"
2+
3+
plugindir = $(libdir)/enigma2/python/Plugins/$(CATEGORY)/$(PLUGIN)
4+
5+
LANGMO = $(LANGS:=.mo)
6+
LANGPO = $(LANGS:=.po)
7+
8+
if UPDATE_PO
9+
# the TRANSLATORS: allows putting translation comments before the to-be-translated line.
10+
$(PLUGIN)-py.pot: $(srcdir)/../src/*.py
11+
$(XGETTEXT) -L python --from-code=UTF-8 --add-comments="TRANSLATORS:" -d $(PLUGIN) -s -o $@ $^; \
12+
$(SED) --in-place $@ --expression=s/CHARSET/UTF-8/;
13+
14+
$(PLUGIN)-xml.pot: $(top_srcdir)/xml2po.py $(srcdir)/../src/*.xml
15+
$(PYTHON) $^ > $@
16+
17+
$(PLUGIN).pot: $(PLUGIN)-py.pot $(PLUGIN)-xml.pot
18+
cat $^ | $(MSGUNIQ) --no-location -o $@ -
19+
20+
%.po: $(PLUGIN).pot
21+
if [ -f $@ ]; then \
22+
$(MSGMERGE) --backup=none --no-location -s -N -U $@ $< && touch $@; \
23+
$(MSGATTRIB) --no-wrap --no-obsolete $@ -o $@; \
24+
else \
25+
$(MSGINIT) -l $@ -o $@ -i $< --no-translator; \
26+
fi
27+
endif
28+
29+
.po.mo:
30+
$(MSGFMT) -o $@ $<
31+
32+
BUILT_SOURCES = $(LANGMO)
33+
CLEANFILES = $(LANGMO) $(PLUGIN)-py.pot $(PLUGIN)-xml.pot $(PLUGIN).pot
34+
35+
dist-hook: $(LANGPO)
36+
37+
install-data-local: $(LANGMO)
38+
for lang in $(LANGS); do \
39+
$(mkinstalldirs) $(DESTDIR)$(plugindir)/locale/$$lang/LC_MESSAGES; \
40+
$(INSTALL_DATA) $$lang.mo $(DESTDIR)$(plugindir)/locale/$$lang/LC_MESSAGES/$(PLUGIN).mo; \
41+
done
42+
43+
uninstall-local:
44+
for lang in $(LANGS); do \
45+
$(RM) $(DESTDIR)$(plugindir)/locale/$$lang/LC_MESSAGES/$(PLUGIN).mo; \
46+
done

configure.ac

+93
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
AC_INIT([enigma2-plugins],[4],[[email protected]])
2+
AM_INIT_AUTOMAKE([dist-bzip2 foreign no-define tar-pax])
3+
AC_CONFIG_HEADERS([enigma2-plugins-config.h])
4+
5+
# Silent rules are available since 1.11, but older versions
6+
# are still in use. So don't use them unconditionally.
7+
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
8+
9+
AC_USE_SYSTEM_EXTENSIONS
10+
AC_SYS_LARGEFILE
11+
12+
AC_PROG_CC
13+
AC_PROG_CXX
14+
m4_ifdef([LT_INIT], [LT_INIT], [AC_PROG_LIBTOOL])
15+
AC_CONFIG_MACRO_DIR([m4])
16+
17+
AC_PATH_PROG(MSGFMT, msgfmt, AC_MSG_ERROR(Could not find msgfmt))
18+
19+
AM_PATH_PYTHON
20+
AX_PYTHON_DEVEL
21+
AX_PTHREAD
22+
23+
TUXBOX_APPS_DVB
24+
25+
26+
AC_ARG_WITH(debug,
27+
AS_HELP_STRING([--without-debug],[disable debugging code]),
28+
[with_debug="$withval"],[with_debug="yes"])
29+
if test "$with_debug" = "yes"; then
30+
DEBUG_CFLAGS="-ggdb3"
31+
AC_DEFINE([DEBUG],[1],[Define to 1 to enable debugging code])
32+
fi
33+
AC_SUBST(DEBUG_CFLAGS)
34+
35+
AC_ARG_WITH(po,
36+
AS_HELP_STRING([--with-po],[enable updating of po files]),
37+
[with_po="$withval"],[with_po="no"])
38+
if test "$with_po" = "yes"; then
39+
AC_PATH_PROG(MSGINIT, msginit)
40+
AC_PATH_PROG(MSGMERGE, msgmerge)
41+
AC_PATH_PROG(MSGUNIQ, msguniq)
42+
AC_PATH_PROG(MSGATTRIB, msgattrib)
43+
AC_PATH_PROG(XGETTEXT, xgettext)
44+
if test -z "$MSGINIT" -o -z "$MSGMERGE" -o -z "$MSGUNIQ" -o -z "$MSGATTRIB" -o -z "$XGETTEXT"; then
45+
AC_MSG_ERROR([Could not find required gettext tools])
46+
fi
47+
fi
48+
AM_CONDITIONAL(UPDATE_PO, test "$with_po" = "yes")
49+
50+
AC_CONFIG_FILES([
51+
Makefile
52+
53+
lcd4linux/Makefile
54+
lcd4linux/src/Makefile
55+
lcd4linux/src/data/Makefile
56+
lcd4linux/src/data/audio/Makefile
57+
lcd4linux/src/data/Clock1/Makefile
58+
lcd4linux/src/data/Clock2/Makefile
59+
lcd4linux/src/data/Clock3/Makefile
60+
lcd4linux/src/data/Clock4/Makefile
61+
lcd4linux/src/data/Clock5/Makefile
62+
lcd4linux/src/data/Clock6/Makefile
63+
lcd4linux/src/data/Clock7/Makefile
64+
lcd4linux/src/data/Clock8/Makefile
65+
lcd4linux/src/data/Clock9/Makefile
66+
lcd4linux/src/data/Clock10/Makefile
67+
lcd4linux/src/meteo/Makefile
68+
lcd4linux/src/wetter/Makefile
69+
lcd4linux/src/renderer/Makefile
70+
lcd4linux/po/Makefile
71+
lcd4linux/meta/Makefile
72+
73+
moviecut/Makefile
74+
moviecut/meta/Makefile
75+
moviecut/src_cc/Makefile
76+
moviecut/src_py/Makefile
77+
moviecut/po/Makefile
78+
79+
networkbrowser/Makefile
80+
networkbrowser/meta/Makefile
81+
networkbrowser/po/Makefile
82+
networkbrowser/src/Makefile
83+
networkbrowser/src/icons/Makefile
84+
networkbrowser/src/lib/Makefile
85+
86+
vps/Makefile
87+
vps/meta/Makefile
88+
vps/po/Makefile
89+
vps/src_cc/Makefile
90+
vps/src_py/Makefile
91+
92+
])
93+
AC_OUTPUT

genmetaindex.py

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# usage: genmetaindex.py <xml-files> > index.xml
2+
import sys
3+
import os
4+
from xml.etree.ElementTree import ElementTree, Element
5+
6+
root = Element("index")
7+
encoding = ("unicode" if sys.version_info[0] >= 3 else "utf-8")
8+
9+
for file in sys.argv[1:]:
10+
p = ElementTree()
11+
p.parse(file)
12+
13+
package = Element("package")
14+
package.set("details", os.path.basename(file))
15+
16+
# we need all prerequisites
17+
package.append(p.find("prerequisites"))
18+
19+
info = None
20+
# we need some of the info, but not all
21+
for i in p.findall("info"):
22+
if not info:
23+
info = i
24+
assert info
25+
26+
for i in info[:]:
27+
if i.tag not in ["name", "packagename", "packagetype", "shortdescription"]:
28+
info.remove(i)
29+
30+
for i in info[:]:
31+
package.set(i.tag, i.text)
32+
33+
root.append(package)
34+
35+
36+
def indent(elem, level=0):
37+
i = "\n" + level * "\t"
38+
if len(elem):
39+
if not elem.text or not elem.text.strip():
40+
elem.text = i + "\t"
41+
if not elem.tail or not elem.tail.strip():
42+
elem.tail = i
43+
for elem in elem:
44+
indent(elem, level + 1)
45+
if not elem.tail or not elem.tail.strip():
46+
elem.tail = i
47+
else:
48+
if level and (not elem.tail or not elem.tail.strip()):
49+
elem.tail = i
50+
51+
52+
indent(root)
53+
54+
ElementTree(root).write(sys.stdout, encoding=encoding)

lcd4linux/CONTROL/control

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Package: enigma2-plugin-extensions-lcd4linux
2+
Version: 5.0-r9
3+
Description: LCD4linux plugin
4+
Maintainer: OpenPLi team <[email protected]>
5+
Homepage: http://www.openpli.org
6+
Depends: python3-codecs, python3-ctypes, python3-datetime, python3-email, python3-icalendar, python3-image, python3-mutagen, python3-pyusb, python3-shell, python3-simplejson, python3-pillow, python3-requests, png-util, pydpflib

lcd4linux/Makefile.am

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
SUBDIRS = meta po src

lcd4linux/meta/Makefile.am

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
installdir = $(datadir)/meta
2+
3+
dist_install_DATA = plugin_lcd4linux.xml

lcd4linux/meta/plugin_lcd4linux.xml

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<default>
2+
<prerequisites>
3+
<tag type="Network" />
4+
</prerequisites>
5+
<info>
6+
<author>IHAD joergm6 [email protected]</author>
7+
<name>LCD4Linux</name>
8+
<packagename>enigma2-plugin-extensions-lcd4linux</packagename>
9+
<shortdescription>Web/DPF/Samsung LCD Ansteuerung</shortdescription>
10+
<description>Web/DPF/Samsung LCD Ansteuerung</description>
11+
</info>
12+
<files type="package"> <!-- without version, without .ipk -->
13+
<file type="package" name="enigma2-plugin-extensions-lcd4linux" />
14+
</files>
15+
</default>

0 commit comments

Comments
 (0)