Non-US patches for debian-cd almost ready
I've just about done; I'm currently testing all the arches. Diffs of
find output currently show that the _only_ changes in terms of files
on each CD are the non-US files themselves and (obviously) the
Packages.cd files on the binary CDs.
I've had to make a few (hopefully reasonable) decisions on strategy:
1. As I said earlier in the week, the Packages.cd files for
dpkg-multicd cause problems, as each CD in the set produced knows
about the contents of each of the previous CDs. This has two effects.
a. The US-safe and non-US CDs MUST have the same label in
.disk/info (easy enough to fix)
b. The US-safe images after CD#1 can't know about the non-US
packages on 1-NONUS. So people using dpkg-multicd won't get non-US
packages. I _think_ this is better option than having people
complain when dpkg uses the non-US Packages.cd files and reports
errors about missing files, but I could be convinced
otherwise. Basically, people should be using apt. New users will
be, as that's what you get from installation now. The only people
that will see any problem are upgraders - a README should be
2. For now I'm assuming that we will only have enough non-US main
section stuff that it will easily fit onto CD#1 - I think this is
fair, as the image sizes (see below) suggest we use ~11MB extra for
i386-1 and ~25MB extra for src-1.
3. The lists of files to go on CD are generated largely as normal.
I've added a new task, tasks/Debian_potato_nonUS, which lists all
the binary non-US packages I can find. This is #included at the top
of tasks/Debian_potato when FORCENONUSONCD1 is set, so all the
non-US packages will be added first. We then generate the
*.packages lists as normal. Copy aside, then remove any non-US
files from these lists, so we get 1.packages and
1_NONUS.packages. The rest of the creation process goes as normal,
but everything we would normally do for CD#1 we now also do for
CD#1_NONUS also. This has meant minor changes all over the place,
I'm afraid - all the boot-ARCH scripts assumed only CD#1 is
bootable, for example.
The source CD changes are simpler. If we're $complete, I force
_all_ free non-US source onto CD#1. If not, I just assume that the
binary-CD placement above will have done the job. It seems to work.
I'd expect people using the FORCENONUSONCD1 option either to not
use non-free at all, or to use the EXTRANONFREE option. Then we get
the non-free non-US stuff on CD4_NONUS, which works exactly as I
was aiming for. I don't foresee any problems with NONFREE and
FORCENONUSONCD1, but I haven't done extensive testing.
4. For the sake of making script-writing easy, I've moved the
generated CD trees from $CDDIR/ to $CDDIR/CD
5. I've split the (huge!) mass of script in the bin-doc Makefile
target off into a separate script, tools/add-bin-doc, to make it
easier to work on.
I hope that the above is clear, and covers all the changes I've
made. Here's the results from the i386 run I've just done. There's
scope yet for tuning image sizes, and the mirror I'm using at home is
~2 weeks old now, so size will change a little anyway.
drwxr-xr-x 2 steve users 4096 Jun 11 18:41 .
drwxrwxr-x 11 steve users 4096 Jun 1 10:40 ..
-rw-r--r-- 1 steve users 640032768 Jun 11 17:59 potato-i386-1.raw
-rw-r--r-- 1 steve users 651350016 Jun 11 18:02 potato-i386-1_NONUS.raw
-rw-r--r-- 1 steve users 674009088 Jun 11 18:06 potato-i386-2.raw
-rw-r--r-- 1 steve users 531488768 Jun 11 18:09 potato-i386-3.raw
-rw-r--r-- 1 steve users 262729728 Jun 11 18:10 potato-i386-4.raw
-rw-r--r-- 1 steve users 265969664 Jun 11 18:12 potato-i386-4_NONUS.raw
-rw-r--r-- 1 steve users 650967040 Jun 11 18:29 potato-src-1.raw
-rw-r--r-- 1 steve users 673572864 Jun 11 18:32 potato-src-1_NONUS.raw
-rw-r--r-- 1 steve users 675948544 Jun 11 18:36 potato-src-2.raw
-rw-r--r-- 1 steve users 643954688 Jun 11 18:40 potato-src-3.raw
-rw-r--r-- 1 steve users 334198784 Jun 11 18:41 potato-src-4.raw
-rw-r--r-- 1 steve users 340088832 Jun 11 18:43 potato-src-4_NONUS.raw
I've checked that sparc, alpha and m68k all work - they also seem to
produce adequate images in so far as I can tell without actually
writing CDs. Arm doesn't have boot CD support yet. Powerpc is
currently broken on my mirror, so while I've been careful to not break
powerpc support I haven't had a chance to test it yet.
I'm currently adding stuff to the README to cover the changes. I
should be able to submit a diff in ~20 minutes, then if nobody has any
major problems I'll be ready to check in.
Steve McIntyre, Cambridge, UK. email@example.com
"Whenever you eat, chew"
"Can't keep my eyes from the circling sky, +------------------
"Tongue-tied & twisted, Just an earth-bound misfit, I..." |Finger for PGP key