Commit 1d1e4b5afce499488e5120622e838ddeda0baa52
- Diff rendering mode:
- inline
- side by side
docs/ipk-specification-v1.txt
(39 / 35)
|   | |||
| 1 | ===== IPK 1.0 Specification ===== | ||
| 1 | ===== IPK 1.1 Specification ===== | ||
| 2 | 2 | ||
| 3 | FIXME This document needs an update! Please not that IPK1.1 will have a completely different structure according to our current plans. | ||
| 3 | FIXME This specifications are @work! Some information might change due the development process | ||
| 4 | or might just be outdated and wrong. | ||
| 4 | 5 | ||
| 5 | 6 | ==== General ==== | |
| 6 | 7 | ||
| 7 | 8 | === Format === | |
| 8 | 9 | ||
| 9 | An 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) | ||
| 10 | Most 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 | ||
| 10 | An IPK setup-package is a [[http://en.wikipedia.org/wiki/Tar_%28file_format%29 | TAR-Archive]], | ||
| 11 | containing a [[http://en.wikipedia.org/wiki/Xz | XZ-Compressed]] data and control tarball. | ||
| 12 | An IPK-Package has the file extension .ipk (= **I**nstallation **p**ac**k**age), which was choosen because it is | ||
| 13 | simple 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 | ||
| 15 | cellphones, this should not leat to much confusion. | ||
| 16 | Most of the IPK packages are named in the following pattern: InstallAppname-version_architecture.ipk | ||
| 17 | E.g if the name of the application is "Sample" the version is "1.0" and the architecture is "i386" the package should | ||
| 18 | be named InstallSample-10_i386.ipk or Sample-10_i386.ipk | ||
| 11 | 19 | ||
| 12 | 20 | === Structure === | |
| 13 | 21 | ||
| 14 | The structure depends on the case if a package is GPG-signed. | ||
| 22 | The IPK archive contains the following files and folders at toplevel: | ||
| 15 | 23 | ||
| 16 | If 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) | | ||
| 17 | 28 | ||
| 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 | | ||
| 22 | 29 | ||
| 30 | Listaller will detect automatically if a package is signed and check if the signature on the IPK package is valid. | ||
| 23 | 31 | ||
| 24 | If 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 ==== | ||
| 25 | 33 | ||
| 26 | ==== The control file ==== | ||
| 34 | All files configuring the behavior of an IPK package or providing additional information about it are stored | ||
| 35 | in the //control.tar.xz// archive. | ||
| 27 | 36 | ||
| 28 | The 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. | ||
| 29 | An arcinfo.pin file may look like this: | ||
| 37 | On toplevel, each control archive has to contain an //arcinfo.pin// document, describing all basic stuff of the package. | ||
| 38 | |||
| 39 | === Arcinfo.pin === | ||
| 40 | |||
| 41 | The //arcinfo.pin// file contains the same information as the definition part in an IPS-script. | ||
| 42 | The package builder has changed file paths and removed some unnecessary elements, everything else is the same. | ||
| 43 | An //arcinfo.pin// file may look like this: | ||
| 30 | 44 | <code ips> | |
| 31 | 45 | IPK-Standard-Version: 1.0 | |
| 32 | 46 | ||
| … | … | ||
| 50 | 50 | Name: FooBar | |
| 51 | 51 | Version: 1.0-a | |
| 52 | 52 | License: include:"/stuff/COPYING" | |
| 53 | Description: include:"/stuff//desc.txt" | ||
| 53 | Description: include:"/stuff/desc.txt" | ||
| 54 | 54 | Icon: /stuff/foobar-icon.png | |
| 55 | 55 | SDesc: A new foo-ish bar | |
| 56 | 56 | SDesc[de]: Einen neue foo-bar | |
| 57 | 57 | Group: Development | |
| 58 | 58 | Author: Foobar Project | |
| 59 | Maintainer: Pete Foo ( | ||
| 60 | petefoo@example.org This e-mail address is being protected from spambots. You need JavaScript enabled to view it | ||
| 61 | ) | ||
| 59 | Maintainer: Pete Foo (petefoo@example.org) | ||
| 62 | 60 | Disallow: ioNothing | |
| 63 | 61 | Profile[0]: Standard | |
| 64 | 62 | AppCMD: $INST/foo/foobar | |
| 65 | Architectures: i386 | ||
| 63 | Architecture: i386 | ||
| 66 | 64 | DSupport: Ubuntu,openSUSE | |
| 67 | Dependencies[DEB]: | ||
| 68 | lynx | ||
| 69 | http://example.org/chd/dnd/package.deb (pkgname) | ||
| 70 | Dependencies[RPM]: | ||
| 71 | lynx-rpm | ||
| 72 | http://example.org/chd/dnd/rpm/package.rpm (pkgname) | ||
| 73 | Dependencies[Ubuntu]: | ||
| 74 | http://dfn.dl.sourceforge.net/sourceforge/listaller/listaller_0.1.16a_i386.deb (listaller) | ||
| 75 | Dependencies[openSUSE]: | ||
| 76 | http://dfn.dl.sourceforge.net/sourceforge/listaller/listaller_0.1.16a_i386.rpm (listaller) | ||
| 77 | 65 | Dependencies: | |
| 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 | ||
| 81 | 69 | </code> | |
| 70 | The format of an IPS definition section is described in the IPS specifications. | ||
| 71 | The following elements are IPK-specific or have different values: | ||
| 82 | 72 | ||
| 83 | All the main elements are described in the IPS specification. The following elements are IPK-specific or have different values: | ||
| 84 | |||
| 85 | 73 | * 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 | |
| 86 | 74 | * Include commands have also changed values. | |
| 87 | 75 | * The !-Files part is missing. | |
| 88 | 76 | ||
| 89 | ==== File information ==== | ||
| 77 | @>HERE<@ | ||
| 78 | |||
| 79 | === File information === | ||
| 90 | 80 | ||
| 91 | 81 | The information about installed files is saved in text files which are stored in the /stuff folder. | |
| 92 | 82 | Every 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: |

