Inprogress patches for "dpkg-lsb" archive backend available.
Late last week there was a debate on the applicability of the LSB to Debian
on debian-devel if the RPM archive format was to be used. [1]
http://lists.debian.org/debian-devel-0105/msg00662.html
Wichert mentioned my dpkg-rpm patch to dpkg, and so Adam asked where the
patch was. Well here it is.
Caveats:
It's 'dpkg-lsb' not 'dpkg-rpm'. I don't want to make it trivially
possible for users to try installing .rpms on a system they were not built
or QA'ed for.
the --build, --feild, and --fsys-tarfile aren't in the perl
proof-of-concept implementation yet (--fsys-tarfile is waiting for an
example of secure temp dir creation in perl)
I have not completed the packaging of the additions yet because I want
comments on the functions first.
[More stuff is in the release notes that follow]
I have put some patches and a tarball up at
http://whimsyville.dyndns.org/publish/LSB-LCD/2001.05.14/ of my attempt to
get dpkg to "natively" handle the subset of lsb format packages.
Please let me know what you think!
Albert.
[1]
RELEASE NOTES:
* installation
1. Apply the patch in the root directory you have checked the head revision
(Mon May 14 11:20 EDT 2001) of dpkg out into.
2. untar the tarball from that same directory.
** The patch
is against mainline dpkg as of this morning (Mon May 14 11:20 EDT 2001)
includes a bunch of .cvsignore updates for my sanity's sake.
** The tarball
Contains one new file for the existing directories (lib/filehelpers.c)
Contains a proof of concept implementation of dpkg-lsb in perl in the
dpkg-lsb-perl directory
Contains a start of an implementation of dpkg-lsb in C in the dpkg-lsb-perl
directory
* Incomplete packaging
I have completed the packaging of this new stuff yet because I want
comments on the implementation first.
Also, I ran into the 'binary' target in debian rules and cravenly decided
that fast is better that complete in this case. "make install" does work
however :)
* Alternate archive format backend support in dpkg
Dpkg architects take note!
I have extended dpkg to guess the archive format from the archive filename
argument. If the filename ends in .lsb then its assumed the dpkg-lsb
backend is relevant. This required distinguishing the dpkg-query backend
from the archive backends.
* perl implementation
In the interests of getting this done fast I hooked chunks of perl code
from the modules of alien. Thank you Joey!
This is the stuff that actually works. Except for the --build, --field, and
--fsys-tarfile operations.
I used "Locale::gettext" liberally but don't have a clue how to do
localization ;).
alien's Makefile.pl is probably the way to go for installation in the
future, but I havn't taken the time to figure it out.
* C implementation
I got lost in the wilds of secure tmpdir creation while attempting to use
rpmlib and gave up on this implementation when I was seduced into rapid cut
and paste coding.
This may be the way to go in the longer term. Debate is welcomed.
--
Albert den Haan, Lead Developer @ Linux Port Team . Corel Corporation
albertd@corel.com (613) 728-0826 x 5318
Reply to: