Le Lun 27 Mars 2006 19:33, Peter Eisentraut a écrit : > I noticed that the KDE maintainers keep their own patched copies of > some of the cdbs files. I'm integrating the uuencoded patch support > now, which should take care of the fork of simple-patchsys.mk. The > files debian-qt-kde.mk and kde.mk, however, seem to have quite a bit > of extra code in there that I don't fully understand. Does anyone > want to undertake explaining this stuff to me and declaring it fit > for general use so it can be merged with "upstream" cdbs? In > particular, what's supposed to be the difference between those two > files?
first of all, that's great news :) if I look at our kde.mk compared to the cdbs one, trhough vimdiff, there is mostly 4 diffs. 1st block: DEB_BUILDDIR is used to compile the package outside from the sources. we add support for it when the packaging uses the 'tarball in the tarball' approach. (used by kdepim) 2nd block: use standard ${libdir} ... instead of /usr/lib, ... I suppose this is useful to create package of KDE that cohabit with official ones (like KDE HEAD packages). I'm not sure this has to go in cdbs kde.mk 3rd block: --enable-debug is not correct, --enable-debug=yes is. I can't remember why --disable-debug has to be forced else, maybe someone else can say why. 4th block: DEB_COMPRESS_EXCLUDE need more extensions, especially needed for KDE docs. and then a block is appended, aka apidox related block, it's used to generate API documentations using doxygen and graphiz. if DEB_KDE_APIDOX is non empty, then API dox are generated, which is not default in kde upstream packages. ============== debian-qt-kde.mk are things we often do in our packages, but that are not meant to be merged (in our opinions) into kde.mk it contains usual common settings (like the fact that we build all our packages with ENABLE-FINAL mode on). we also have our own DEB_DH_MAKESHLIBS_ARGS_ALL and related hacks. Maybe your recent commit will permit us to reduce that, I've not investigated more than that atm, so I just cannot say. bits of code contain (in order of appearance): line 10-17 and 88-97: small bit of code that autogenerate configure and friends from admin/Makefile.common. --> it's used for packages that use the tarball in the tarball approach, and that need relibtoolization of the package. we usually do that at packaging time, but kdepim cannot do that because of the tarball in the tarball approach, and re-libtoolization is done at build time. the process is controlled by the DEB_KDE_CVS_MAKE variable. --> it's also used for packages that do not have configure and friends to generate them. ==> I personnaly don't like that, because it puts quite a lot of burden on the buildds and that it can generate unpredictable behaviour. I'm not in favor of inclusion into kde.mk not meant to go into kde.mk, I think it's only used for kdepim and tarball because sometimes it's admin/Makefile.cvs or another one. THough, as it has to be called *BEFORE* inclusion of autotools.mk, we prefer to have it here. line 28-39: code we use to generate man pages from sgml templates: every debian/man/*.sgml is converted into debian/man/out/*.man[1-9] guessing the man section from the generated man page. --> it's a cool hack (IMHO), but do not belong to kde.mk at all, it's a problem that is more general than that. line 40-56: this hack is used to guess the KDE version we are packaging (e.g. 3.4.2 atm). this is used for some substvars we use in kde packaging, to tighten some dependencies. --> has no sense out of the KDE official modules. line 58-62: clean of our hacks line 64-86: generate HTML docks from applications doocbooks. --> I don't know if it could go in kde.mk or not. maybe other members of the team may have more insight on this. ========= sorry for the very long answer, I hope the other will be able to fill the gaps I've left, and that you can sort that a bit out ;) PS: all of that work is on svn.debian.org, in the pkg-kde repository: under svn(+ssh)://pkg-kde/trunk/, you'll find : * cdbs/ (our cdbs-like own files) * packages/$pkg/debian : debian/ directory for package $pkg * common-patches/ are patches applied to every sources, and you don't really care about them -- ·O· Pierre Habouzit ··O [EMAIL PROTECTED] OOO http://www.madism.org
pgpE3fjEagj4q.pgp
Description: PGP signature