On Wed, Dec 19, 2007 at 09:24:47PM -0800, Daniel Burrows wrote:
> On Wed, Dec 19, 2007 at 04:41:58PM -0500, Paul Donohue was heard to say:
> > To make things clearer and more readable, I've broken the subdirs patch
> > out into several patches anyway.
> > 
> > I've also removed all the code for the 'max-levels' parameter.  (When I 
> > originally coded the patch, I wasn't sure how robust aptitude was, so I 
> > put that parameter in there incase I ran into problems with packages 
> > with tons of nested sections, and needed to limit the nesting ... I 
> > haven't actually run into any problems, and this parameter added a lot 
> > of cruft to the patch, so I stripped it out ... if you want it back, let 
> > me know ... I suppose there is still some value in it ... with
> > max-levels set to 1, subdirs is the same as subdir, so we could
> > eliminate subdir and use max-levels instead if you wanted).
> 
>   I think that's probably fine.  I can easily add the feature back in
> if someone has a use-case for it.  Regarding your other comment, I'm
> not really interested in eliminating options from the code: they might
> still be in use in the wild, and breaking people's configuration without
> a really good reason is un-neighborly.
> 
> > patch.subdirs is the main patch ... I've stripped as much cruft out of 
> > it as possible.  The changes to add_package aren't particularly readable 
> > in the diff file itself, but if you patch the file and compare the 
> > original and patched copies, the new function is organized in much the 
> > same way as the original, so the similarities and differences should be 
> > reasonably clear.
> 
>   Ok, I'll take a look at this later.  If you don't hear from me by next
> Monday, send me a ping email.
> 
> > BTW ... is the 'task' package handling code in add_package still valid?
> > It kinda looks like this code was intended for an old task mechanism that
> > is no longer in use...  I kept the old functionality just incase.
> 
>   Yes, I don't think we use those task packages any more ... but again,
> I don't know what odd configurations are out there in the wild.  I'd
> like to avoid breaking it if possible.
> 
> > patch.subdirs.topdir adds a hack for identifying top-level sections.
> 
>   If I can summarize to see if I understand what this is intended to do
> (I haven't even glanced at the code yet): it essentially codes the
> Debian archive division into the aptitude source, right?  The main
> problem I see here is that it'll make work for the Ubuntu guys and other
> repackagers, who may not have the same archive division as Debian.
> OTOH, I suppose that I already do that anyway!

Yes, exactly.

Keeping the Ubuntu guys in mind, the hard-coded archive division is 
implemented simply as a string defined in init_section_descriptions()

The Ubuntu guys are already patching this function to include 
descriptions for their archive sections, so hopefully it won't be a 
problem for them to also update my hard-coded string to define their
top-level sections.

...from 
http://archive.ubuntu.com/ubuntu/pool/main/a/aptitude/aptitude_0.4.6.1-1ubuntu3.diff.gz:
-  section_descriptions["contrib"]=transcode(_("Programs which depend on 
software not in Debian\n Packages in the 'contrib' section are not part of 
Debian.\n .\n These packages are Free Software, but they depend on software 
which is not part of Debian.  This may be because it is not Free Software, but 
is packaged in the non-free section of the archive, because Debian cannot 
distribute it at all, or (in rare cases) because no-one has packaged it yet.\n 
.\n For more information about what Debian considers to be Free Software, see 
http://www.debian.org/social_contract#guidelines";));
-  section_descriptions["main"]=transcode(_("The main Debian archive\n The 
Debian distribution consists of packages from the 'main' section. Every package 
in 'main' is Free Software.\n .\n For more information about what Debian 
considers to be Free Software, see 
http://www.debian.org/social_contract#guidelines";));
-  section_descriptions["non-US"]=transcode(_("Programs stored outside the US 
due to export controls\n Packages in 'non-US' likely contain cryptography; a 
few implement patented algorithms. Because of this, they cannot be exported 
from the United States, and hence are stored on a server in the \"free 
world\".\n .\n Note: the Debian Project is currently merging cryptographic 
software into the US-based archives after consulting with legal experts about 
recent changes in export policies. Most packages which were formerly found in 
this section, therefore, are now in 'main'."));
-  section_descriptions["non-free"]=transcode(_("Programs which are not free 
software\n Packages in the 'non-free' section are not part of Debian.\n .\n 
These packages fail to meet one or more of the requirements of the Debian Free 
Software Guidelines (see below). You should read the license of programs in 
this section to be sure that you are allowed to use them in the way you 
intend.\n .\n For more information about what Debian considers to be Free 
Software, see http://www.debian.org/social_contract#guidelines";));
+  section_descriptions["main"]=transcode(_("Fully supported Free Software.\n 
.\nUbuntu software in the \"main\" component is fully supported, and is Free 
Software. Not only is this software freely available, it comes with signficant 
rights for you to modify it, improve it and share it. Read more about the 
Ubuntu manifesto and licence policy at 
http://www.ubuntulinux.org/ubuntu/licensing/";));
+  section_descriptions["restricted"]=transcode(_("Binary-only device 
drivers.\n .\nThe \"restricted\" component of Ubuntu consists of device drivers 
that are only available in binary form, and cannot be modified. We provide 
these solely because it is the only way to make the rest of Ubuntu run on 
certain hardware, we recommend you determine whether or not you need this, and 
if not, to remove it."));
+  section_descriptions["universe"]=transcode(_("Unsupported Free Software.\n 
.\nUbuntu software in the \"universe\" component is Free Software, but does not 
receive the same level of testing and polish that software in the \"main\" 
component receives. The Ubuntu team does not review this software for security, 
nor does it provide any assurance of ongoing security updates after release."));
+  section_descriptions["multiverse"]=transcode(_("Unsupported Non-free 
Software.\n .\nSoftware in the \"multiverse\" component has not been determined 
to be Free Software, please make certain that you verify your rights to use 
this software and comply with the licensing terms of the copyright holder. This 
software receives no support and usually cannot be fixed or updated. Use it at 
your own risk on your own advice."));

>   Perhaps a compromise would be to add some configuration directives
> that give the names of the default section (i.e., "main") and other
> known top-level sections ("non-free" and "contrib").  Then the Ubuntu
> packagers could add an override in apt.conf to include multiverse and
> all their other stuff.
Not a bad idea.  However, if we allow the known top-level sections to be 
externally configured, we should probably also allow the section 
descriptions to be externally configured...  I actually think this would 
be a nice feature to have regardless ... do you have any ideas about the 
proper way to implement external configuration of section descriptions?  
I don't know the best way to do that.

>   I'll write more when I get a chance to do a technical review of the
> patches.
> 
>   Daniel

Thanks!
-Paul



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to