[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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
      sufficient, IMHO.

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/[1234] to $CDDIR/CD[1234]

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.

total 6201760
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.                   stevem@chiark.greenend.org.uk
			"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

Reply to: