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

Re: intent to package BladeEnc

On 8 Jul 1999, Jim Pick wrote:

> > Uh.  non-US is in .nl, not .de....
> One problem.  Non-US is mirrored in many countries.  eg.  If the
> patent applies in Canada, and the package gets uploaded, then I'll
> have to take my mirror down.
>  - Jim
Maybe we need to rethink the mirroring system with the legal issues in
mind. I saw this kind of propositions a few times in the recent weeks. 

I am alas not familiar with the mirroring system. I presume something
akin to the Packages.gz (a file such as Packages-legal-informations.gz)
shoud be used, including, per package, three headers:

Patented-in: COUNTRY-CODES-LIST           # This relates to freeness
Legal-in: COUNTRY-CODES-LIST              # This relates to usage
Exportable-to: COUNTRY-COUPLES-CODES-LIST # This relates to mirroring
Base-site: LIST OF MIRRORS                # This relates to special case

A country-codes-list could be defined as two-letters keyword defining
countries (such as us, nl, fr, ca) or global key-words that could be set
to help the distinction (for example, relating to crypto stuff, the WAS
keyword could design countries that signed the Wassenaar treaty (sp?)).
A '-' sign could exclude countries, e.g. : Legal-in: ALL -in -au could
design a package that is illegal to use in India and Australia, but
legal anywhere else (to the extent of the package manager --
debian-legal is probably the place to discuss these headers).

Exportable-to: would be a list of matches origin-destination. It
defaults to "only default allowance is to export to the same country".

One sample :
us/us; ALL-us/ALL-us; could tag what is currently the situation of
ALL/ALL; tags a really 'free to move' package.
WAS/WAS; could tag crypto packages stored in the WAS zone.

The 'ALL' keywords should be used only if there are no rules
matching the destination country for the destination, or origin for the
origin. In fact, us/us; ALL/ALL; should be sufficient to tag a package
that must not go out of US, but can move freely anywhere else. Other
keyword would just be expanded (we could imagine to group EEC in one
package if needed).

Mirroring would require to parse this file to get the list of packages
to mirror. In addition, a user looking for a specific package that has
not been mirrored (because of some in-between legal restriction) could
always look for the Base-site for the package (right now, there would be
only two possibilities : non-us.debian.org and main.debian.org).

Many situations can arise :
- the package is limited for exportation in a country (say xy) to (some
list of countries, say xy,qy,xo). Simply add the rule xy/xy,qy,xo; to
the export line. No mirror should fetch this package if not in country

- the package is illegal to use (because of some law) in country xy.
It is also probably illegal to possess this package when not using it.
Add xy/xy; rule to Exportable-to:, and -xy to Legal-in:.

- the package is patented in country xy. It should go in non-free if it
was in main, when mirrored in xy. However, probably we need something
else more precise, because if it is exported back to some other country,
it may become free again. Patented-in: could have to be divided in
"Contrib-in:" (cause it will depend there from patented or otherwise
non-free software) and "Nonfree-in:" (cause it will be non-free or
patented anyway). Nonfree-packages would juste use the 'ALL' keyword to
catchup all countries.

Perhaps I am still missing something. Perhaps this is too difficult to
put in place.

I hope I am not repeating over-repeated stuff or making blatant errors.
I also hope my English is good enough. If any of these conditions were
unmet, please be kind to me :-).

Last point. I am not that familiar with law. I am making the assumption
that people work for the best of humanity, to help each other and make
everything better. Maybe I'm completely wrong on this.

Jean-Christophe Dubacq, France.

Reply to: