Randy McMurchy wrote:
> Alexander E. Patrakov wrote these words on 09/11/07 08:04 CST:
>
>   
>> OK. Now imagine the following situation: someone wants to create a 
>> Debian package with the LFS book. Debian policy requires that all HTML 
>> and PDF files are rebuilt from XML source in this case.
>>     
>
> Pardon my ignorance to Debian procedures, but what exactly does
> "create a Debian package" mean?

For Debian Developers, this means:

1) (Re)package the original source files into a tar.gz archive, rename 
it according to the Debian requirements (something like 
lfs-book_6.3+r7105.orig.tar.gz)

2) Patch the sources as needed to resolve bugs, etc.

3) Create a "debian" directory with the files that are used for creating 
*.deb files from the above-mentioned source, plus various 
Debian-specific mandatory documentation such as a packaging changelog. 
The following set of files is typical: 
debian/{changelog,compat,control,copyright,rules}. debian/rules is just 
a Makefile (with "#!/usr/bin/make -f" at the top and the executable bit 
set) with several mandatory targets (such as "binary", which builds the 
sources and packs the result into the deb packages). debian/control, 
most importantly, lists the build-time and run-time dependencies.

4) Create a diff.gz between the freshly unpacked contents of orig.tar.gz 
and the result of steps (2)+(3) above. I.e., the patch would contain 
bugfixes plus the whole "debian" directory.

5) Create the dsc file from the debian/control file (using the 
"dpkg-buildpackage" tool). This file contains build-time dependencies, 
package version, the desired architectures, and MD5 sums of orig.tar.gz 
and diff.gz files, all signed with GPG.

6) Upload the dsc, orig.tar.gz and diff.gz files to a buildd (a machine 
that runs a "build daemon"). The daemon will automatically verify your 
signature, create a chroot, populate it with the build-time dependencies 
of your package, unpack it, apply the diff, and run "debian/rules 
binary". The resulting deb files are then automatically placed into the 
archive.


> And so I can properly evaluate
> the situation as it pertains to going back to system-installed
> XSL Stylesheets, why does "Debian policy" affect anything we do
> in (B)LFS?
>   

Strictly speaking, it doesn't. However, it would be nice if LFS 
cooperates a bit more with packagers by making their job easier.


>> If the LFS book 
>> relies on the external DocBook XSL setup of a certain version, I see no 
>> way to do it, except by reverting the switch to the external copy of 
>> DocBook XSL stylesheets (which is as bad as any other reversion of 
>> upstream changes) or changing the stylesheet version to "current" (which 
>> is going to break PDF - even worse).
>>     
>
> How have you been doing it for the last few *years* (up until just
> a month or so ago)?

I was not a Debian user then.

>  Why wasn't this an issue for the many years
> we used external XSL stylesheets?
>   

Because nobody attempted to create a package for other distros.

>> The problem is that old versions of DocBook XSL are simply not available 
>> as Debian packages, so one cannot build-depend on them without 
>> immediately getting a release-critical bug report.
>>     
>
> Again, why do we care what is available as a Debian package? And
> why couldn't one just install whatever version of stylesheets that
> makes Debian happy and create a 'current' symlink pointing at it.
>   

Because the buildd won't do it for you.

>> Maybe it makes sense, in the case of switching to the released version 
>> of DocBook XSL, to adopt a solution from argouml:
>>
>>  * depend on a known (not "current") version of DocBook XSL
>>  * don't keep a copy of DocBook XSL in SVN (but maybe add to tarballs)
>>  * add a Makefile target for downloading the correct version of DocBook XSL
>>  * make it easy to use this private just-downloaded copy of stylesheets 
>> instead of the (possibly non-existent) system-wide installation
>>     
>
> I'm lost here. I don't think I fully grasp what the problem is,
>   

Most distro packages are autobuilt according to buildscripts. One cannot 
specify a dependency on something (e.g., old version of docbook-xsl) 
which is not packaged.

> and why we'd need to worry about any of this.

Nothing beyond "it would be nice to cooperate with packagers".

> We never had to worry
> about any of it before, and there was never an issue that I knew of
> (or perhaps there was, and it was never mentioned?).
>   

You are right - the issue always existed but was never mentioned.

-- 
Alexander E. Patrakov
-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to