Commit 1d1e4b5afce499488e5120622e838ddeda0baa52

[SPEC] Added few stuff from the IPK1.1 draft

* Included new basic structure
  (similar to DEb packages)
  
1===== IPK 1.0 Specification =====
1===== IPK 1.1 Specification =====
22
3FIXME This document needs an update! Please not that IPK1.1 will have a completely different structure according to our current plans.
3FIXME This specifications are @work! Some information might change due the development process
4or might just be outdated and wrong.
45
56==== General ====
67
78=== Format ===
89
9An IPK setup-package is a [[http://en.wikipedia.org/wiki/Xz | XZ-Compressed]] [[http://en.wikipedia.org/wiki/Tar_%28file_format%29 | TAR-Archive]]. An IPK-Package has the file extension .ipk (= **I**nstallation **p**ac**k**age), which was choosen because it is simple and easy to remember. Unfortunately the Opkg and Ipkg package manager for Linux cellphones uses the same extension. But because Listaller setups are targeted to Linux desktops and not to cellphones, it should not be much confusing. That the extension was used by some other very old applications does not matter too. (IPK was an image-format for Nintendo® games)
10Most of the IPK packages are named in the following pattern: (Install)appname-version_architecture.ipk e.g if the name of the application is "Sample" the version is "1.0" and the architecture is "i386" the package should be named InstallSample-10_i386.ipk or Sample-10_i386.ipk
10An IPK setup-package is a [[http://en.wikipedia.org/wiki/Tar_%28file_format%29 | TAR-Archive]],
11containing a [[http://en.wikipedia.org/wiki/Xz | XZ-Compressed]] data and control tarball.
12An IPK-Package has the file extension .ipk (= **I**nstallation **p**ac**k**age), which was choosen because it is
13simple and easy to remember. Unfortunately the Opkg and Ipkg package manager for Linux cellphones uses the same extension,
14(and IPK was an image-format for Nintendo® games), but because Listaller setups are targeted to Linux desktops and not to
15cellphones, this should not leat to much confusion.
16Most of the IPK packages are named in the following pattern: InstallAppname-version_architecture.ipk
17E.g if the name of the application is "Sample" the version is "1.0" and the architecture is "i386" the package should
18be named InstallSample-10_i386.ipk or Sample-10_i386.ipk
1119
1220=== Structure ===
1321
14The structure depends on the case if a package is GPG-signed.
22The IPK archive contains the following files and folders at toplevel:
1523
16If a package is not signed, an IPK package contains the following files and folders at toplevel / (the main tarfile)
24^ Name ^ Required? ^ Function ^
25| files-<id>.tar.xz | yes | Contains the files which have to be installed. The <id> indicates the profile number. |
26| control.tar.xz | yes | Archive with configuration files of this package, the main config file as well as e.g. Licenses, scripts, descriptions, file-info etc. |
27| _signature.asc | no | A GPG ASC signature of this package. (Only exists if the package is signed) |
1728
18^ Name ^ Type ^ Function ^
19| files | folder | Contains all files that have to be installed on the disk. |
20| pkgdata | folder | Contains some configuration file of the package, e.g. Licenses, descriptions file-lists, scripts etc. |
21| arcinfo.pin | file | Contains basic information about the package |
2229
30Listaller will detect automatically if a package is signed and check if the signature on the IPK package is valid.
2331
24If a package is signed, it contains a file signature.asc and a file content.tar at toplevel. Then tarfile contains the structure listed above. The ascfile contains the signature of content.tar. Listaller will detect automatically if a package is signed and check if the signature on the tarfile is valid. The directory "pkgdata", which contains all installation profiles is required. The "files" directory can have another name.
32==== The control files ====
2533
26==== The control file ====
34All files configuring the behavior of an IPK package or providing additional information about it are stored
35in the //control.tar.xz// archive.
2736
28The arcinfo.pin file is nearly the same as the definition part in an IPS-Script. The package builder has changed file paths and removed some unnecessary elements, everything else is the same.
29An arcinfo.pin file may look like this:
37On toplevel, each control archive has to contain an //arcinfo.pin// document, describing all basic stuff of the package.
38
39=== Arcinfo.pin ===
40
41The //arcinfo.pin// file contains the same information as the definition part in an IPS-script.
42The package builder has changed file paths and removed some unnecessary elements, everything else is the same.
43An //arcinfo.pin// file may look like this:
3044<code ips>
3145IPK-Standard-Version: 1.0
3246
5050Name: FooBar
5151Version: 1.0-a
5252License: include:"/stuff/COPYING"
53Description: include:"/stuff//desc.txt"
53Description: include:"/stuff/desc.txt"
5454Icon: /stuff/foobar-icon.png
5555SDesc: A new foo-ish bar
5656SDesc[de]: Einen neue foo-bar
5757Group: Development
5858Author: Foobar Project
59Maintainer: Pete Foo (
60 petefoo@example.org This e-mail address is being protected from spambots. You need JavaScript enabled to view it
61 )
59Maintainer: Pete Foo (petefoo@example.org)
6260Disallow: ioNothing
6361Profile[0]: Standard
6462AppCMD: $INST/foo/foobar
65Architectures: i386
63Architecture: i386
6664DSupport: Ubuntu,openSUSE
67Dependencies[DEB]:
68 lynx
69 http://example.org/chd/dnd/package.deb (pkgname)
70Dependencies[RPM]:
71 lynx-rpm
72 http://example.org/chd/dnd/rpm/package.rpm (pkgname)
73Dependencies[Ubuntu]:
74 http://dfn.dl.sourceforge.net/sourceforge/listaller/listaller_0.1.16a_i386.deb (listaller)
75Dependencies[openSUSE]:
76 http://dfn.dl.sourceforge.net/sourceforge/listaller/listaller_0.1.16a_i386.rpm (listaller)
7765Dependencies:
78 libc6.so
79 library2.so
80 /usr/lib/libnagra.so.4
66 $LIB/libc6.so
67 $LIB/library2.so
68 $LIB/libnagra.so.4
8169</code>
70The format of an IPS definition section is described in the IPS specifications.
71The following elements are IPK-specific or have different values:
8272
83All the main elements are described in the IPS specification. The following elements are IPK-specific or have different values:
84
8573 * License, Description, Wizimage, Icon: The value has changed, it points now to a file in the IPK package. / is the package root. Licenses are usually saved in /stuff
8674 * Include commands have also changed values.
8775 * The !-Files part is missing.
8876
89==== File information ====
77@>HERE<@
78
79=== File information ===
9080
9181The information about installed files is saved in text files which are stored in the /stuff folder.
9282Every file has a name following the sheme: fileinfo-.id The is replaced by the profile identification number. E.g. if the identification number is 2 the associated file-info file is named fileinfo-2.id The content of the fileinfo has the following structure: