pkgwrite - Make RedHat and Debian packages from the same source.
pkgwrite (--tarball=TARBALL | --srcdir=SRCDIR) \
[--pkgwriteinfo-file=pkgwriteinfo] \
--arch=ARCH \
--format={redhat,debian}
[options]
pkgwrite --query-list=LISTNAME
pkgwrite takes a standard automake package, either from a source directory or from a distributed tarball, and a pkgwrite input file and makes either RedHat or Debian packages.
The actual package source code must be specified either by directory (using --srcdir) or from a tarball created with `make dist' (using --tarball).
Additional packaging information is taken from pkgwriteinfo. If --pkgwriteinfo-file is omitted, pkgwriteinfo from the source directory or tarball is taken instead. (after configure is run, so you might generally use a pkgwriteinfo.in).
There are a few command-line parameters which affect the package-making:
/tmp/mkpkg-###-$USER). Useful for debugging.
stable or unstable is recommended.
{MAIN} build.
{MAIN} because the package is an all-or-nothing proposition.
Some packages contain many parts, not all applicable to all users. These packages should be broken in to different targets.
For example, a client/server based application might be conveniently packaged foo-server, foo-client-curses, foo-client-gtk. That way, users without X can use the curses version without installing gtk+, often the clients and servers are run exclusively on different machines, so installing both is a waste of disk space.
The resulting system-dependent binary's name is just the main Package: name if the Target: is {MAIN}; otherwise it will be the Package and Target separated by a hyphen (-).
We recommend that you maintain a changelog in debian format, here is an example:
gdam (0.934-1) unstable; urgency=low
* many bug fixes * split into many packages
-- David Benson <[email protected]> Wed, 17 Jan 2000 13:09:36 -0800
(No spaces for each version banner; 2 spaces on each bullet; 1 space before the packager byline.)
If you don't maintain a changelog, we will generate a changelog with just this version of the package in it.
You should specify the changelog using the Changelog: directive.
Here are a few examples of common types of packages. The pkgwrite distribution includes these packages inside the examples/tiny directory.
The most common type of package has one set of files it installs or uninstalls: there are no packaged bits or pieces. (A Target in pkgwrite terminology is the installed set of files.)
Here is the pkgwrite file from the single-target example included with the pkgwrite distribution:
Package: aa Section: text Group: Applications/Text Priority: low Home-Page: NONE Source-Url: NONE Author: David Benson <[email protected]> Version: 0.0.7 Release: 1 Synopsis: test package aa Packager: daveb Packager-Email: [email protected] License: NONE Description: test package (aa).
Build: {MAIN}
Target: {MAIN}
Files: /usr/bin/dummy-*
Synopsis: test a (single-target package)
This package's name is aa; this file will produce a binary RPM named aa-0.0-1.$ARCH.rpm.
a, but debian packages must be at least two letters.
i386, alpha, or powerpc.
{MAIN} is special, it means ``don't use any suffix'' -- the package's name is to be aa. For any other Target line, if STRING was specified, the resulting RPM or deb would have the name aa-STRING.
A multi-target, single-build package is a package that need only be compiled once, but which must be separated into several system packages, because the targets appeal to different users or have different dependencies.
Here is the pkgwriteinfo file from the example multi-target single-build package:
Package: bb Section: text Group: Applications/Text Priority: low Home-Page: NONE Source-Url: NONE Author: David Benson <[email protected]> Version: 0.0 Release: 1 Synopsis: test package bb Packager: daveb Packager-Email: [email protected] License: NONE Description: test package (bb).
Build: {MAIN}
Target: a Files: /usr/bin/bb-a Synopsis: part a of package bb Description: whatever (bb-a)
Target: b Files: /usr/bin/bb-b Synopsis: part b of package bb Description: whatever (bb-b)
In this package, only a single default Build: is required. Some packages may require the Configure-Flags or Configure-Envars fields in order to compile correctly.
By default, all the targets use the {MAIN} Build.
Then each package contains a default file list, a description and a synopsis.
The most complex type of package must be built multiple times, with different configure or make flags. Each target must then refer to the build from which it was produced, using the Which-Build field (the default is {MAIN}).
Here is the example of such a package from the pkgwrite distribution:
Package: cc Section: text Group: Applications/Text Priority: low Home-Page: NONE Source-Url: NONE Author: David Benson <[email protected]> Version: 0.0 Release: 1 Synopsis: test package cc Packager: daveb Packager-Email: [email protected] License: NONE Description: test package (cc).
Build: nond Configure-Flags: --program-suffix=-nondebug
Build: d Configure-Flags: --program-suffix=-debug
Target: nondebug Which-Build: nond Files: /usr/bin/test-nondebug Synopsis: nondebug package cc Description: whatever (cc-nondebug)
Target: debug Which-Build: d Files: /usr/bin/test-debug Synopsis: debug package cc Description: whatever (cc-debug)
Each Build section corresponds to a complete configure, build, install phase. In this package, the nond build just wants configure to be run configure --program-suffix=-nondebug ... whereas for the d build, configure --program-suffix=-debug ... (Note that the ... will be somewhat different from distribution to distribution)
Also, it is often convenient to use the same names for the builds and the targets. We would rename nond as nondebug and d as debug if this were a real package -- we did this to discuss it more conveniently.
It is perfectly possible to have more than one Target pointing to the same Build, just as multi-target single-build packages do. But the opposite is not allowed: a Target must specify exactly one Build.
Many lists and values are hardcoded into pkgwrite. You may query these lists through the --query-list flag. Here are the lists you may obtain in this manner:
For example to get a list of allowed values for the Section: field, use pkgwrite --query-list=deb-sections.
This (long) section describes the file that describes the targets to build from a tarball. This description file is called a pkgwriteinfo file.
The pkgwriteinfo file consists of one package description part, then a number of Build sections, then a number of Target sections.
The package file should begin with a section that describes the overall source code of the package:
Package: gdam Section: sound Group: Multimedia/Sound Priority: optional Home-Page: http://ffem.org/gdam Source-Url: http://ffem.org/gdam/downloads/gdam-0.0.930.tar.gz Version: 0.0.930 Release: 1 Author: David Benson <[email protected]>
Here is a description of each allowed field:
pkgwrite) is the same as the upstream maintainer of a package.
Right now, this only affects the filename used for the changelog, it will either be changelog.gz if they are the same person, or changelog.Debian.gz if they are not.
For each output binary package there must be a ``target'' section:
Target: xmms-plugins Depends: gdam-clients-gtk, gdam-server, xmms Synopsis: GDAM XMMS plugin support Description: use XMMS visualization plugins with GDAM. Files: /usr/bin/gdamxmmsvishelper
gdam-xmms-plugins.
yes if this package will be installable on any architecture (it contains no system-specific or compiled code).
Set this to no for packages containing compiled, architecture-specific binaries.
Depends: lines by default; this is just in case we cannot guess correctly.)
Conflicts: by default.
pkgwrite.1. It will automatically be installed into the correct section directory based on its extension.
It will be always be copied into the distribution's documentation area, and it will be gzip'd if that is needed. Also, whole directories will be recursively copied, if the entry ends with a /, for example,
Doc: /usr/share/doc/gdam/example-configs/
These must be files directly from the distributed tarball. They will be always be copied into the distribution's documentation area and will be gzip'd if that is needed. Whole directories will be recursively copied, if the entry ends with a /.
{MAIN}).
{MAIN}.
configure script.
make program during both the build and the install phase.
make program during just the build phase.
make program during just the install phase.
make target that is necessary to build the package, that is not run by the default target. This must not require root priviledges. (You may specify any number of Extra-Build-Targets: lines.)
make target that is necessary to install the package, that is not run by the default target. On Debian systems, these commands may require root or fakeroot. (You may specify any number of Extra-Install-Targets: lines.)
If you have problems, here are some hints:
--no-cleanup flag or equivalently have the DO_CLEANUP environment variable set to 0. (You can find the directory where work was done by running: ls -ltr /tmp/mkpkg-*)
pkgwriteinfo file until you locate the problem. Report a bug if the problem is clear.
Here are some trivial mistakes made often:
pkgwriteinfo is generated by configure from pkgwriteinfo.in. It is easy to forget to rerun configure and very slow.
I don't know of any easy solution to forgetting at the moment, but you may just run config.status instead, in order save time.
Of course, you can and should work however you want, but for your information, I will write the testing process I use for releasing packages.
I always make automake packages that use pkgwriteinfo inside the tarball.
It is important to note that my packages always support make rpm and make deb using pkgwrite, and that these targets only make dist if the tarball isn't present!
bootstrap (as recommended by the automake authors), but many packages use ./autogen.sh, which traditionally also runs ./configure.
If you used bootstrap, you will need to run ./configure.
Then make the tarball using make distcheck.
./configure, then make rpm and make deb, respectively.
dist tarball, into a directory which you will upload.
I also inspect them with the following commands:
System| RedHat Debian
Action |
--------------+------------------------------------------------
List of files | rpm -qpl *.rpm dpkg-deb -c *.deb
General data | rpm -qpi *.rpm dpkg-deb -e *.deb
TODO
Written by Dave Benson <>.
Bagi pemula yang ingin mencoba keberuntungan dalam dunia permainan slot online, slot depo 5k bisa menjadi solusi ideal. Dengan modal yang kecil, Anda dapat memulai permainan dan memahami cara kerja mesin slot tanpa risiko besar. Hal ini juga memungkinkan pemain untuk mengeksplorasi berbagai jenis game slot yang tersedia di situs-situs terkemuka.
Paylines atau garis pembayaran adalah jalur di mana kombinasi simbol harus muncul agar player Slot Gacor mudah memenangkan hadiah, dan semakin banyak paylines yang dimainkan, semakin besar peluang untuk mendapatkan kombinasi yang menang. Jadi, kalau kamu ingin meningkatkan peluang menang, mainkan sebanyak mungkin paylines yang tersedia. Selain itu, beberapa game juga menawarkan fitur bonus yang bisa bikin pengalaman bermain semakin seru. Ingat, lebih banyak garis pembayaran bisa berarti lebih banyak kesempatan untuk menang, jadi jangan ragu untuk mencoba!
Penggemar slot pasti tidak ingin melewatkan pengalaman seru di Mahjong Ways 2. Dengan grafis memukau dan fitur bonus yang melimpah, game ini memberikan peluang menang yang lebih besar, terutama saat Anda bermain di Mahjong Ways 2.
Skin baru ini bukan cuma kosmetik doang, tapi juga punya efek visual unik yang bisa kamu lihat lewat toto togel. Update kecil kadang berdampak besar ke gameplay. Banyak detail penting ada di patch notes.
Bagi yang ingin merasakan pengalaman bermain slot yang lengkap, Toto Slot adalah pilihan yang tepat. Dengan berbagai fitur unggulan, permainan berkualitas, serta sistem keamanan terbaik, pemain dapat menikmati permainan dengan nyaman dan memperoleh peluang menang yang lebih besar.
Slot777 menjadi pilihan utama bagi banyak pemain yang mencari peluang menang besar. Dengan koleksi permainan yang terus diperbarui, situs ini selalu menghadirkan inovasi baru. Di Slot777, Anda bisa menikmati permainan slot dengan berbagai tema menarik yang siap menghibur Anda sepanjang waktu.
Sistem pembayaran digital yang praktis kini menjadi daya tarik utama, sebab banyak pemain memilih metode cepat dan efisien seperti Slot Qris, yang memungkinkan transaksi berlangsung dalam hitungan detik saja.
Banyak pemain yang rutin memeriksa Pengeluaran Macau sebagai panduan untuk menentukan angka taruhan berikutnya. Data ini menjadi acuan penting karena memberikan informasi tentang angka-angka yang sudah keluar sebelumnya. Dengan akses yang mudah, pemain dapat memastikan bahwa mereka selalu update dengan pengeluaran Macau terbaru.
Banyak pemain togel yang setiap hari menantikan informasi Keluaran HK untuk mengecek angka keberuntungannya. Informasi ini sangat penting karena menjadi acuan untuk menganalisis pola dan tren angka. Anda bisa meningkatkan peluang menang dengan memanfaatkan Keluaran HK secara maksimal dalam strategi permainan Anda.
Untuk pemain yang lebih suka bermain aman dengan hadiah yang lebih stabil, Bo Togel Hadiah 2d 130rb adalah pilihan yang tepat. Meskipun hadiahnya tidak sebesar yang lain, banyak pemain memilih opsi ini karena mereka merasa peluang menang lebih konsisten, serta tetap memberikan keuntungan lumayan.
Banyak orang yang kini lebih memilih bermain togel secara online karena lebih praktis dibandingkan dengan sistem konvensional. Situs Toto memberikan kemudahan bagi pemain dalam mengakses permainan dari mana saja tanpa perlu datang ke tempat fisik.
Salah satu alasan mengapa banyak orang tertarik bermain Toto Macau adalah karena pasaran ini memiliki jadwal pengundian yang lebih sering dibandingkan lainnya. Dengan demikian, pemain memiliki lebih banyak kesempatan untuk mencoba keberuntungan mereka setiap harinya. Selain itu, hasil pengundian yang transparan membuat pemain merasa lebih nyaman dan percaya diri dalam bermain.
Banyak orang percaya bahwa rahasia kesuksesan dalam dunia taruhan angka terletak pada pemahaman terhadap pola permainan, terutama saat mengikuti rahejasvivarea.com yang konsisten menjadi pusat perhatian bagi para penggemar togel di berbagai negara.
Platform Sbobet88 dikenal sebagai salah satu situs terpercaya untuk taruhan olahraga dan kasino online. Dengan dukungan teknologi terkini, pemain dapat mengakses layanan ini dengan mudah kapan saja. Pastikan untuk bergabung dengan Sbobet88 dan rasakan sensasi bermain yang aman dan menyenangkan.
Berdasarkan laporan pengalaman pengguna, kualitas platform terlihat dari proses administrasi yang cepat dan perlindungan akun yang memadai sehingga tingkat kenyamanan naik ketika Bo Togel menerapkan prosedur verifikasi dan audit internal untuk menjaga integritas permainan.
Banyak penggemar slot memilih slot Thailand karena kemudahan akses, dukungan pembayaran fleksibel, serta peluang kemenangan besar yang terus meningkat setiap harinya.
Skin langka yang satu ini bukan cuma soal tampilan, tapi juga efek visual dan suara skill yang bikin pengalaman main makin puas tonton di toto togel. Komunitas aktif biasanya punya banyak diskusi menarik. Dari build karakter sampai bocoran update.
Promo top-up kolaborasi spesial kasih bonus item unik, info nominalnya lanjut baca di toto. Event terbatas sering punya misi unik. Variasi gameplay bikin nggak cepat bosan.