[sword-devel] DRM entries in .conf files

Chris Little sword-devel@crosswire.org
Sat, 15 Dec 2001 15:59:58 -0800

> Wow, I haven't thought about DRM in quite some time. Kind of 
> a blast from the past sort of thing.... Anyway, here are a 
> few thoughts, questions, comments.

I think you've put too much thought into this before. :)  Or else I've
not put enough. :)

My intention with the DRM info is to note what the copyright & license
permit, not to implement enforecment of them.

Just FYI, my per-verse (perverse?) numbers reflected limits
per-operation.  So, if you have a module with a 500 verse limit set on
printing, you could print up to 500 verses, then immediately print
another 500, but only 500 at a time. :)  OLB has something like this,
but their limit is set to 200 verses I believe.

I want to retract my suggestions of the "DRMPermissions", "DRMWriteKey",
"DRMPrintKey", & "DRMReadKey" fields. :)  They would potentially take us
down a road that I (personally) don't want to go down.  Ever.  Feel free
to argue with me that they have some positive use, but I don't see one.
If publisher X wants to limit users in how they are allowed to use texts
or want such nonsense as expiring licenses, they can find someone else's
software to help them do that.  DRM is evil, and serves no legitimate
purpose other than to restrict users rights in ways that they can't be
in traditional media.  We, of all groups, should not encourage DRM.  (Am
I really so desperate to pick a fight here, that I have to attack my own
previous email? :)

That said... I do still think we should adopt the "CopyrightHolder",
"CopyrightDate", "License", & "TextSource" fields.  And I would add to
them, a "QuoteLimit" field to indicate a limit on quotation in human
readable format.

Separately, I would add a "Writable" field, indicating that a module may
be written to.  This would be set for modules like personal commentaries
and modules that are being used in distributed editing systems.  And
possibly a "WriteKey" field to hold a unix crypt() password, or some
kind of MD5 hash if Mike prefers :), to be checked whenever a write
operation is attempted.  (But the hash can't use either the module or
the .conf file since both can be modified.)