E2PluginsCreate


Wiki source for E2PluginsCreate


Show raw source

==== Create E2 Plugins / OPKG Packages with a Linux PC and Gnome desktop with Nautilus file manager, or KDE desktop with Dolphin file manager. ====

{{googletranslate}}
##Be aware: don't translate the code, keep it English##

Using a Linux PC and Nautilus (Gnome) file manager you can follow this procedure in order to build an ipk package. This guide uses an Enigma2 plugin as example.

Requirements: **dpkg**(Debian package management system) and **fakeroot**(Gives a fake root environment).
Do check your Linux package manager for installing these software.

**1. Create Package folders**
Create a directory with the following contents.

%%enigma2-plugin-extensions-mytestplugin_1.0_mipsel/
debian-binary
DEBIAN/
control
postinst
postrm
preinst
usr/lib/enigma2/python/Plugins/Extensions/MyTestPlugin/
__init__.py
plugin.py%%


**2. Create Package files**
The debian-binary file contains only '2.0', the plugin directory obviously contains the plugin python source and the DEBIAN folder files must have [like] the following contents :

-----------
control:
-----------
%%Package: enigma2-plugin-extensions-mytestplugin
Version: 1.0
Description: MyTestPlugin plugin does this and that (Enigma2)
Section: extra
Priority: optional
Maintainer: me <me@foo.com>
Architecture: mipsel
OE:
Homepage: www.vuduo.com
Depends:
Source: www.vuduo.com%%
--------
postinst:
--------
%%#!/bin/sh
echo "Restarting Enigma2 to load MyTestPlugin Plugin ..."
init 4
killall -9 enigma2 > /dev/null 2>&1
init 3
exit 0%%
--------
postrm:
--------
%%#!/bin/sh
echo "Removing MyTestPlugin Plugin from the system ..."
rm -r /usr/lib/enigma2/python/Plugins/Extensions/MyTestPlugin > /dev/null 2>&1
echo "Restarting Enigma2 to get rid of MyTestPlugin Plugin ..."
init 4
killall -9 enigma2 > /dev/null 2>&1
init 3
exit 0%%
--------
preinst:
--------
%%#!/bin/sh
echo "Checking for an older version of MyTestPlugin in the system..."
if [ -d /usr/lib/enigma2/python/Plugins/Extensions/MyTestPlugin ]
then
rm -rf /usr/lib/enigma2/python/Plugins/Extensions/MyTestPlugin > /dev/null 2>&1
echo "An older version of MyTestPlugin was found and removed"
echo "Proceeding to installation..."
else
echo "MyTestPlugin was not found in the system"
echo "Proceeding to installation..."
fi
exit 0%%
--------

**3. Create nautilus script (Gnome only!)**
In order to build ipk directly from nautilus you need to have a script in %%~/.gnome2/nautilus-scripts/%% like the following (chmod +x Build_folder_into_ipk_package ).

--------
Build_folder_into_ipk_package :
--------
%%#!/bin/bash

BASENAME=`basename $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS`
DIRNAME=`dirname $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS`

cd $DIRNAME && fakeroot -- dpkg-deb --build ./$BASENAME "$BASENAME.ipk"

if [ ! -f $DIRNAME/$BASENAME.ipk ]; then
zenity --error --title "ERROR.: ipkg not created!" --text " Don't creat it.!\n Please check it."
exit 0
else
zenity --info --title "OK.: ipkg created successfully." --text " ipkg file created successfully..\n File path: $DIRNAME/$BASENAME.ipk"
fi
exit 0%%
--------

To build the package using Nautilus simply right click on folder enigma2-plugin-extensions-mytestplugin_1.0_mipsel and go to Scripts-> Build_folder_into_ipk_package


**3. Create Dolphin script (KDE only!)**

Create a .desktop file on folder %%~/.kde/share/kde4/services/ServiceMenus/%% (for example Build_folder_into_ipk_package.desktop ) with the following contents:
--------
%%Build_folder_into_ipk_package.desktop

[Desktop Entry]
Type=Service
Icon=utilities-file-archiver
X-KDE-Icon=utilities-file-archiver
Actions=Build_folder_into_ipk_package
ServiceTypes=KonqPopupMenu/Plugin,inode/directory,inode/directory-locked
Terminal=true

[Desktop Action Build_folder_into_ipk_package]
Exec=/bin/sh -c "cd `dirname %U` && fakeroot dpkg-deb --build ./`basename %U` `basename %U`.ipk"
Icon=utilities-file-archiver
X-KDE-Icon=utilities-file-archiver
Name=Build folder into ipk package%%

--------

==== Create E2 Plugins / OPKG (IPKG) Packages with Multi OS computer and Enigma2 tuner. ====

Requirements:

**[[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html -PuTTY]]** (windows/Linux-see package manager)
**[[http://winscp.net -WinSCP]]**(windows)
**-Terminal** (Linux [[http://aplawrence.com/Linux/enable_telnet.html howto]] + OS-X [[http://www.wikihow.com/Use-Telnet-on-Mac-OS-X howto]])

Install: dreambox-opkg-tools-mips_1.0_mipsel.ipk on your Enigma2 tuner, [[http://www.pli-images.org/getfile.php?type=a&file_id=9389 download the package]] ([[http://www.pli-images.org/getfile.php?type=a&file_id=10893 1.2 version download link]]).and put it on your Enigma2 tuner in the folder:

%%/home/root%%

Execute the following command with putty:

1.0 %%opkg install /home/root/dreambox-opkg-tools-mips_1.0_mipsel.ipk%%
1.2 %%opkg install /home/root/enigma2-plugin-extensions-opkg-tools_1.2_mipsel.ipk%%

Now the opkg tools are installed.

===Building a package:===

Let's say that we are going to build a picon package...

Create the following directory structures on your Dreambox/VU+ DUO:

%%/home/root/SOMENAME%%
%%/home/root/SOMENAME/CONTROL%%
%%/home/root/SOMENAME/picon%%

In the folder **/home/root/SOMENAME/CONTROL** you put the following files.

**control**
**postrm**

Make sure that the line endings are in UNIX style if you're doing the work from a Windows machine, you can use [[http://notepad-plus-plus.org/ NotePad(PlusPlus)]] wich has support for UNIX style line endings.

In the file **control** put the following text:

%%Package: enigma2-plugin-picons-MYPACKAGENAME
Version: 2010-10-29
Description: Picons
Architecture: mipsel
Section: extra
Priority: optional
Maintainer: xxxx
Homepage: xxxx
Depends: enigma2
Source: xxxx%%

When you look at the package name structure **'enigma2-plugin-'** will always be the same, the word **'picons'** can change according to the style of you package, take a look at your download menu on your Dreambox/VU+ DUO and you'll understand. The **xxxx** can also be changed to something of your liking.

Then we also have the file **postrm**, in our example we will put the following in postrm:

%%#!/bin/sh
rm -rf /picon%%

This file will get executed after we have removed our package, to do some more cleanup.
There is no need to put commands in here to remove the files that you install, they wil automatically be removed.

You can also use the files:

**postinst** <--Right after the installation
**preinst** <--Right before the installation
**prerm** <--Right before the removal

There is still one thing to do in our example, we should put some picon files in the folder:

%%/home/root/SOMENAME/picon%%

You can put also some other folders in **/home/root/SOMENAME**, the directory stucture that you create there, will be the final directory structure that is installed on your Dreambox/VU+ DUO.

Now you can build the package using the command:

%%opkg-build /home/root/SOMENAME%%

Wait a bit...., depending on how large your package is, when it has finished building your package. There should be a file called:

%%/home/root/enigma2-plugin-picons-MYPACKAGENAME_ 2010-10-29_mipsel.ipk%%

This file you can install using the command:

%%opkg install /home/root/enigma2-plugin-picons-MYPACKAGENAME_ 2010-10-29_mipsel.ipk%%

If you put your file somewhere on a webserver you can also use:

%%opkg install http://www.MYWEBSERVER.com/enigma2-plugin-picons-MYPACKAGENAME_ 2010-10-29_mipsel.ipk%%

The package will then be downloaded and installed.

----
[[pluginwiki E2 Plugin Wiki]] : [[HomePage Back to the PLi� Wiki]] : [[DM500 DM500]] : [[DM500plus DM500+]] : [[DM56xx DM56xx]] : [[DM600 DM600]] : [[DM7000 DM7000]] : [[DM7020 DM7020]] : [[DM7025 DM7025]] : [[DM800 DM800]] : [[DM8000 DM8000]]
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki