Discussion:
May I publish a Windows Installer for GNU Emacs?
(too old to reply)
Frank Schmitt
2003-09-12 16:20:14 UTC
Permalink
Hello

During the last days, I've created a Windows Installer for GNU
Emacs. Here's what it currently does:

After a welcome dialog, it shows the GPL and asks the user, if he
accepts it. If he does, he can now choose a directory to install Emacs
in. The installer now checks, if the environment variable HOME is
set. If it is not, the user is asked, if he wants the installer to set
it and prompted for a directory. Now the user can choose if he wants an
entry in the Start menu and if he wants one, in which folder it should
be created. Now the user can choose, if he wants shortcuts on the
desktop and the quicklaunch bar, too. After this the installation
begins, first all files which would be installed by a "make install"
are copied to the chosen folder, then the registry entries which would
normally be set by running addpm.exe are added and if the user choose
to set $HOME, the environment variable is set and the directory
created. If $HOME has been set by the installer, the user is now
prompted for a reboot and installation is finished.

My installer currently installs a CVS snapshot of Emacs' head from
09/09/03 plus the dll's needed to display inline images (from the
gnuwin32 project), but creating an installer for any other version of
Emacs is a matter of running a simple script.

I'd like to publish this installer (and an installer for latest stable
Emacs) on my website, is this OK? Or would you like to make this
installer "official"? (I'd be willing to keep it up-to-date)

If I publish it on my website, do I have to publish the sourcecode, too
or is it enough to say "Emacs' sources can be found on ftp.gnu.org or
any gnu mirror respectively by doing a CVS checkout (informations on how
to do this can be found on http://savannah.gnu.org/projects/emacs). The
sources for the image libraries used can be found on
http://gnuwin32.sourceforge.net/"?

The installer was created with the help of two free tools: Inno Setup 4
(http://www.jrsoftware.org/isinfo.htm OK, I don't really know if the
software can really be called free, it's published under a somewhat
BSD-like license, see http://www.jrsoftware.org/files/is/license.txt) to
create the installer and 7-zip (http://www.7-zip.org/ published under
the LGPL) to compress it to the size of 17.2 mb (uncompressed about
93mb).
--
Did you ever realize how much text fits in eighty columns? If you now consider
that a signature usually consists of up to four lines, this gives you enough
space to spread a tremendous amount of information with your messages. So seize
this opportunity and don't waste your signature with bullshit nobody will read.
David Kastrup
2003-09-12 17:28:30 UTC
Permalink
Post by Frank Schmitt
During the last days, I've created a Windows Installer for GNU
After a welcome dialog, it shows the GPL and asks the user, if he
accepts it. If he does, he can now choose a directory to install Emacs
in.
This is nonsense. There is no need to accept the GPL for installing
and using Emacs.
Frank Schmitt
2003-09-12 17:37:49 UTC
Permalink
Post by David Kastrup
Post by Frank Schmitt
During the last days, I've created a Windows Installer for GNU
After a welcome dialog, it shows the GPL and asks the user, if he
accepts it. If he does, he can now choose a directory to install Emacs
in.
This is nonsense. There is no need to accept the GPL for installing
and using Emacs.
Ah OK, I must admit, that I have "stolen" this part from Gimps
installer, but I see your point and will remove it.
--
Did you ever realize how much text fits in eighty columns? If you now consider
that a signature usually consists of up to four lines, this gives you enough
space to spread a tremendous amount of information with your messages. So seize
this opportunity and don't waste your signature with bullshit nobody will read.
Peter S Galbraith
2003-09-12 18:52:48 UTC
Permalink
Post by Frank Schmitt
Post by David Kastrup
Post by Frank Schmitt
During the last days, I've created a Windows Installer for GNU
After a welcome dialog, it shows the GPL and asks the user, if he
accepts it. If he does, he can now choose a directory to install Emacs
in.
This is nonsense. There is no need to accept the GPL for installing
and using Emacs.
Ah OK, I must admit, that I have "stolen" this part from Gimps
installer, but I see your point and will remove it.
Actually, I suggest that you take David's advise do display the
following buttons:

"Thank you." and "I knew that."

instead of not displaying the GPL. Why? Free software is not as
well-known in the Windows world (although someone installing Emacs might
already have a clue) and I know maybe people that click "I accept"
without even reading anything when they encounter an EULA. If they saw
Thank you." and "I knew that.", they might be surprised and read the
GPL. Then that's one more person that goes "Wow, that's neat."

Peter
David Kastrup
2003-09-12 20:20:05 UTC
Permalink
Post by Peter S Galbraith
Post by Frank Schmitt
Post by David Kastrup
Post by Frank Schmitt
During the last days, I've created a Windows Installer for GNU
After a welcome dialog, it shows the GPL and asks the user, if
he accepts it. If he does, he can now choose a directory to
install Emacs in.
This is nonsense. There is no need to accept the GPL for
installing and using Emacs.
Ah OK, I must admit, that I have "stolen" this part from Gimps
installer, but I see your point and will remove it.
Actually, I suggest that you take David's advise do display the
"Thank you." and "I knew that."
[Note: and make both of them work the same]
Post by Peter S Galbraith
instead of not displaying the GPL. Why? Free software is not as
well-known in the Windows world (although someone installing Emacs
might already have a clue) and I know maybe people that click "I
accept" without even reading anything when they encounter an EULA.
If they saw "Thank you." and "I knew that.", they might be surprised
and read the GPL. Then that's one more person that goes "Wow,
that's neat."
Well, in case my meaning got lost: it _was_ a serious proposal of mine
to display those buttons along with the GPL. And the sad thing about
it is that people will tend to read the GPL because they would feel
insecure about what their choices might entail and what they will
subject themselves to making either.

Whereas they have no problem clicking on "I agree" to something they
have not even read through.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
Frank Schmitt
2003-09-12 20:50:56 UTC
Permalink
Post by David Kastrup
Well, in case my meaning got lost: it _was_ a serious proposal of mine
to display those buttons along with the GPL. And the sad thing about
it is that people will tend to read the GPL because they would feel
insecure about what their choices might entail and what they will
subject themselves to making either.
Whereas they have no problem clicking on "I agree" to something they
have not even read through.
I see Peters and your point, however this is a bit tricky to do (the
licence dialog is a standard dialog in the setup creator, I'd have to
create a new dialog from scratch or modify the sources of the setup
creator and recompile it).

I'll see what I can do.
--
Did you ever realize how much text fits in eighty columns? If you now consider
that a signature usually consists of up to four lines, this gives you enough
space to spread a tremendous amount of information with your messages. So seize
this opportunity and don't waste your signature with bullshit nobody will read.
Thien-Thi Nguyen
2003-09-13 09:02:10 UTC
Permalink
Frank Schmitt <***@Frank-Schmitt.net> writes:

I see Peters and your point, however this is a bit tricky to do (the
licence dialog is a standard dialog in the setup creator, I'd have to
create a new dialog from scratch or modify the sources of the setup
creator and recompile it).

if the dialog is standard, why not roll w/ it and slide some gnu into the
users' head? go meta w/ something like: "this is the ``standard'' dialog,
normally you would have to ``agree'' to FOO (even if you don't really read
it), but now you have GNU (which is a different beast entirely). if
interested, read on, intrepid human!" followed by the manifesto or whatnot.
throw in some links to fsf, gnu, eff, etc.

thi
Stephen J. Turnbull
2003-09-15 04:53:26 UTC
Permalink
David> And the sad thing about it is that people will tend to read
David> the GPL because they would feel insecure about what their
David> choices might entail and what they will subject themselves
David> to making either.

Heh. My bet is that if they're ordinary users, they'll be peeved at
being tricked into reading the GPL to decide which button to push, and
discovering that it doesn't tell them! when they were planning on
ignoring any legal restrictions on use and redistribution in any case.
--
Institute of Policy and Planning Sciences http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.
Richard Stallman
2003-09-15 23:07:30 UTC
Permalink
Heh. My bet is that if they're ordinary users, they'll be peeved at
being tricked into reading the GPL to decide which button to push, and
discovering that it doesn't tell them! when they were planning on
ignoring any legal restrictions on use and redistribution in any case.

A message in that tone is not a constructive contribution to deciding
what we should do.
Stephen J. Turnbull
2003-09-16 06:54:36 UTC
Permalink
rms> A message in that tone is not a constructive contribution to
rms> deciding what we should do.

OK, here's a contructive version.

Paraphrase: Make sure that the dialog itself makes clear that use of
Emacs is entirely free under copyright law. While to those in the
know, "Thanks!" and "I knew that!" are cute, the GNU GPL _is_ a legal
document. Its purpose is likely to be quite unclear to the
uninitiated. Those labels will occasionally be taken as a bad, if
well-intended, joke of uncertain meaning.

OTOH, I agree with the observation that users expect a EULA, and this
is an opportunity to put something useful in front of them.

Note that the GPL *is* a license, although not an "agreement".
Without it, the user may not make copies, which we consider a natural
part of ordinary usage. Granted, most people will just burn a CD
containing the whole distribution, and thus trivially satisfy the
conditions. But a license _is_ required, and there are some natural
ways to go wrong (for example, just copying the installed Emacs tree,
omitting the source distribution), so any humor may be a little risky,
legally speaking.

I suspect a terse statement of the four freedoms would fit and be
appropriate here. Further, I would suggest that the GPL be presented
(1) as the legal statement of the FSF's responsibilities to the user
(NO WARRANTY etc), so please read that part, and (2) an invitation to
participate in improvement of the software.

With (2) in mind, you might consider substituting "How can I help?" or
"I'd like to know more!" for "I knew that!", and that button's action
would be to display some appropriate text. Probably the whole GNU
Manifesto is too "heavy," but excerpts including the parts about "what
we need", plus text specifically explaining how important "ordinary
user" contributions such as bug reports and participation in c.emacs
and gnu.emacs.* are, might actually be quite frequently read.

Something like:

========================================================================

Thank you for choosing GNU Emacs.

Please read the "GNU General Public License" displayed below.

[[[[[[[[[[[[ scrollable text box containing preface and GPL ]]]]]]]]]]]]

Summary

Under copyright law, you are free to run this copy of GNU Emacs. The
following General Public License states and protects additional rights
that you possess. You need not accept or decline the License; you
simply exercise those rights, as defined in the License, at your
option. Please read it to learn precisely what they are.

One of those rights is make additional copies of GNU Emacs for your
own use. Another is to copy and redistribute it to your neighbors, as
long as you give them a copy of everything, just as you got it. More,
you may add features, fix defects, or use parts of GNU Emacs for your
own purposes, and make and distribute copies of such derived software.

In case of modification, we add more complex restrictions to ensure
that all users can exercise these rights. According to law, if you
redistribute copies of the software, verbatim or modified, you must
follow the terms of the License. Please read the License, so you may
freely share GNU Emacs with your neighbors according to its terms.

This license is extended from the Free Software Foundation, and any
authors of modifications, to you. Since all are free to modify and
redistribute this software, no one can accept liability for any
defects or problems that may arise in your use of GNU Emacs. This is
explained in the NO WARRANTY section of the License.
------------------------------------------------------------------------

GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

[[[[[[[[[[[[[[[[[[[[[[ end scrollable text box ]]]]]]]]]]]]]]]]]]]]]]]]]

GNU Emacs includes many contributions from both dedicated developers
and "just plain users". If you will use GNU Emacs and share verbatim
copies with your neighbors, join us by clicking "Thank you all!" and
starting to use GNU Emacs. If you would like to know how to contribute
more concretely, or how to use parts of GNU Emacs for your own
purposes, click "Tell me more."

["Thank you all!"] ["That's great! Tell me more, without legalese."]

========================================================================

Yeah, I know, all that's in the Preamble of the GPL. But it would
require really fine print---bad associations, there---to get all those
statements into the first screen if we just dive into the GPL. And
I'm sorry, I couldn't see a good way to get "free software" in there;
it really requires the supporting context that the Preamble gives.
Hopefully a well-designed screen can attract them to read the Preamble
(and the rest of the GPL).

The "without legalese" phrase is a little risky; people might
substitute clicking that button for reading the GPL. However, this
could be considered a reasonable tradeoff to get many people to read
anything at all. And sections of the GPL itself, plus pointers back
to the full document, would be natural to include anyway.

I considered that the GPL itself could be invoked by a button, but I
think it's most likely to be read if the title is visible along with
the summary.
--
Institute of Policy and Planning Sciences http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.
Miles Bader
2003-09-16 07:42:28 UTC
Permalink
I like Stephen's version a lot; it seems both clear and informative.

-Miles
--
Freedom's just another word, for nothing left to lose --Janis Joplin
David Kastrup
2003-09-16 22:27:44 UTC
Permalink
Post by Stephen J. Turnbull
rms> A message in that tone is not a constructive contribution to
rms> deciding what we should do.
OK, here's a contructive version.
Paraphrase: Make sure that the dialog itself makes clear that use of
Emacs is entirely free under copyright law. While to those in the
know, "Thanks!" and "I knew that!" are cute, the GNU GPL _is_ a legal
document. Its purpose is likely to be quite unclear to the
uninitiated. Those labels will occasionally be taken as a bad, if
well-intended, joke of uncertain meaning.
Pity. I like that, but then I am biased to my own jokes.
Post by Stephen J. Turnbull
Note that the GPL *is* a license, although not an "agreement".
Without it, the user may not make copies, which we consider a natural
part of ordinary usage. Granted, most people will just burn a CD
containing the whole distribution, and thus trivially satisfy the
conditions. But a license _is_ required,
Not really. It's just that without a licence, the usefulness of the
software would be less.

[...]
Post by Stephen J. Turnbull
Summary
Under copyright law, you are free to run this copy of GNU Emacs. The
following General Public License states and protects additional rights
that you possess. You need not accept or decline the License; you
simply exercise those rights, as defined in the License, at your
option.
This is incorrect. It sounds like you can cherrypick. But you
either have to accept the license as a whole, or decline it.
Post by Stephen J. Turnbull
In case of modification, we add more complex restrictions to ensure
that all users can exercise these rights. According to law, if you
redistribute copies of the software, verbatim or modified, you must
follow the terms of the License.
That is wrong. You need to follow the terms of a licence only if you
have agreed to a licence (that's why there is such a joke like
click-through licences).

Copyright law defaults to allowing you to pass on or sale your own
acquired copy of an acquired piece of copyrighted material. Only
additional copies are not permitted to be circulated, unless you have
negotiated a licence permitting it.

And so on. It's a nice idea to write some brief explanation to a
legal document, but if one does, it takes quite a lot of checking to
make sure one does not tell people something wrong.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
Stephen J. Turnbull
2003-09-17 12:01:11 UTC
Permalink
Post by Stephen J. Turnbull
conditions. But a license _is_ required,
David> Not really. It's just that without a licence, the
David> usefulness of the software would be less.

The context clearly implies "required _to copy and distribute_".
Post by Stephen J. Turnbull
Summary
Under copyright law, you are free to run this copy of GNU
Emacs. The following General Public License states and
protects additional rights that you possess. You need not
accept or decline the License; you simply exercise those
rights, as defined in the License, at your option.
David> This is incorrect. It sounds like you can cherrypick. But
David> you either have to accept the license as a whole, or
David> decline it.

Substitute "You need not accept or decline the License at this time.
At your option, at any time you may simply exercise those additional
rights, which implies acceptance."

Of course cherrypicking is OK. You may choose to exercise any, all,
or none of the options the GPL offers. They don't constrain each
other as far as I can tell.
Post by Stephen J. Turnbull
In case of modification, we add more complex restrictions to
ensure that all users can exercise these rights. According to
law, if you redistribute copies of the software, verbatim or
modified, you must follow the terms of the License.
David> That is wrong. You need to follow the terms of a licence
David> only if you have agreed to a licence (that's why there is
David> such a joke like click-through licences).

Read Clause 5, please: distribution constitutes acceptance. If this
needs to be spelled out precisely, then most of Clause 5 would have to
be reiterated, making the value of a summary questionable. (It's
already too bulky.) Just reduce the whole summary to:

========================================================================
Summary

Under copyright law, you are free to run this copy of GNU Emacs. The
following General Public License states and protects additional
restricted rights to copy, modify, and distribute GNU Emacs that you
possess. Please read the License to learn what they are.
========================================================================

That's pretty good, but I think that the opportunity to put a more
descriptive summary in front of the reader shouldn't be wasted.
Remember, we're talking about a population of users which is much less
likely to be interested in those rights than we are, but we'd still
like to educate them. They already know very well how to click on
"Accept" without reading; let's not tickle that reflex.

BTW, if click-through is a joke, I hate to think what you'd call the
GPL. It doesn't even offer you a chance to click.

David> Copyright law defaults to allowing you to pass on or sale
David> your own acquired copy of an acquired piece of copyrighted
David> material.

In English in this context "redistribute copies of" will normally be
taken as equivalent to "copy and redistribute" (the unambiguous but
rather awkward phrase used by the GPL). I could change it to that,
but I really don't think it's necessary.

David> And so on. It's a nice idea to write some brief
David> explanation to a legal document, but if one does, it takes
David> quite a lot of checking to make sure one does not tell
David> people something wrong.

AFAICT I wrote nothing that is factually incorrect (there are a few
typos and grammar errors), when interpreted idiomatically in English.
I was careful (twice, in fact) to refer to the License as the
definition of those rights, and to tell the reader to read it. If
that's not good enough, then nothing can be. (That's not rhetoric; I
was fully aware when I wrote the post that anything less than the
exact text of the GPL might be considered unacceptable by the lawyers.)
--
Institute of Policy and Planning Sciences http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.
David Kastrup
2003-09-17 12:44:33 UTC
Permalink
Post by Stephen J. Turnbull
Post by Stephen J. Turnbull
conditions. But a license _is_ required,
David> Not really. It's just that without a licence, the
David> usefulness of the software would be less.
The context clearly implies "required _to copy and distribute_".
Copyright law allows you making personal copies and distributing to a
computer on which you'd like to use it.
Post by Stephen J. Turnbull
Post by Stephen J. Turnbull
Summary
Under copyright law, you are free to run this copy of GNU
Emacs. The following General Public License states and
protects additional rights that you possess. You need not
accept or decline the License; you simply exercise those
rights, as defined in the License, at your option.
David> This is incorrect. It sounds like you can cherrypick. But
David> you either have to accept the license as a whole, or
David> decline it.
Substitute "You need not accept or decline the License at this time.
At your option, at any time you may simply exercise those additional
rights, which implies acceptance."
Of course cherrypicking is OK. You may choose to exercise any, all,
or none of the options the GPL offers. They don't constrain each
other as far as I can tell.
I can redistribute but don't need to heed that I need to include the
source code? Hardly.
Post by Stephen J. Turnbull
Post by Stephen J. Turnbull
In case of modification, we add more complex restrictions to
ensure that all users can exercise these rights. According
to law, if you redistribute copies of the software, verbatim
or modified, you must follow the terms of the License.
David> That is wrong. You need to follow the terms of a licence
David> only if you have agreed to a licence (that's why there is
David> such a joke like click-through licences).
Read Clause 5, please: distribution constitutes acceptance. If this
needs to be spelled out precisely, then most of Clause 5 would have to
be reiterated, making the value of a summary questionable.
It is not the purpose of the summary to state incorrectly what can be
read more fully. It's perfectly fine to just keep out points from a
summary or refer to the full version. But one should avoid stating
misleading things.
Post by Stephen J. Turnbull
========================================================================
Summary
Under copyright law, you are free to run this copy of GNU Emacs.
Actually, not even that is true. If I steal some Linux CD's
including only free software, I don't acquire the right to run the
software. If I steal an internal version derived from Emacs from a
company's server, it is illegal for me to run the stolen software or
redistribute it.

How about:

Copyright law regulates what you can do with a copy of software you
legally acquired unless you agreed to additional licensing terms.
While you don't need to agree to the GPL in order to run Emacs or make
copies for personal use, you lose nothing by agreeing, since that just
gives you additional rights.
Post by Stephen J. Turnbull
BTW, if click-through is a joke, I hate to think what you'd call the
GPL. It doesn't even offer you a chance to click.
Right. And it does not need to. Since it makes it optional whether
you want to agree to the licence or not. You can claim "Clicking
some stupid button on a computer does not constitute legally binding
agreement."

But the GPL does not have to rely on such stupidities because it does
not restrict what copyright allows you, but extends it. Not agreeing
buys you nothing.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
David Kastrup
2003-09-18 13:05:09 UTC
Permalink
Post by David Kastrup
Post by Stephen J. Turnbull
Under copyright law, you are free to run this copy of GNU Emacs.
Actually, not even that is true. If I steal some Linux CD's
including only free software, I don't acquire the right to run the
software.
If they are truly Linux CDs, you could not run them anyway, since a
kernel alone won't run. But if they were CDs of a released version of
GNU/Linux, then you could run them.
I discussed this issue with our lawyer, and we concluded that if
there was no trade secret in the code you stole, you do have the GPL
rights in using it.
Sure? It is not copyright that is relevant here, it is the usual
criminal code. Copyright tells you about your rights when you have
acquired a copy of something, but theft is not a legal acquisition.
You are not permitted to make use of stolen goods. You could not sue
for breach of copyright but for employment of stolen goods, and the
party that could sue is not the copyright holder, but rather the legal
owner of the copy.

But I don't see how the recipient of a theft would gain license rights
unless being granted those after the fact from the copyright holder.
There was no transaction putting him into legal possession of a copy.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
Richard Stallman
2003-09-18 22:44:50 UTC
Permalink
The GPL gives everyone permission to make copies. Our lawyer saw no
reason that would exclude a stolen copy.
David Kastrup
2003-09-18 23:05:58 UTC
Permalink
Post by Richard Stallman
The GPL gives everyone permission to make copies. Our lawyer saw no
reason that would exclude a stolen copy.
The GPL is not something floating in the air. You have to be given it
before it applies. Stealing it along with software does not make it a
valid licence, just as stealing a house contract does not make me
owner of the house.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
Oliver Scholz
2003-09-19 04:58:42 UTC
Permalink
FWIW this point is mentioned in the GPL FAQ. They distinguish the
case of stealing an unpublished CD from stealing a CD that has been
released elsewhere.

http://www.gnu.org/licenses/gpl-faq.html#StolenCopy

If someone steals a CD containing a version of a GPL-covered
program, does the GPL give him the right to redistribute that
version?

If the version has been released elsewhere, then the thief
probably does have the right to make copies and redistribute
them under the GPL, but if he is imprisoned for stealing the
CD he may have to wait until his release before doing so.

If the version in question is unpublished and considered by a
company to be its trade secret, then publishing it may be a
violation of trade secret law, depending on other
circumstances. The GPL does not change that. If the company
tried to release its version and still treat it as a trade
secret, that would violate the GPL, but if the company hasn't
released this version, no such violation has occurred.


Oliver
--
Oliver Scholz Jour du Travail de l'Année 211 de la Révolution
Taunusstr. 25 Liberté, Egalité, Fraternité!
60329 Frankfurt a. M. http://www.jungdemokratenhessen.de
Tel. (069) 97 40 99 42 http://www.jdjl.org
David Kastrup
2003-09-19 09:49:22 UTC
Permalink
Post by Oliver Scholz
FWIW this point is mentioned in the GPL FAQ. They distinguish the
case of stealing an unpublished CD from stealing a CD that has been
released elsewhere.
http://www.gnu.org/licenses/gpl-faq.html#StolenCopy
If someone steals a CD containing a version of a GPL-covered
program, does the GPL give him the right to redistribute that
version?
If the version has been released elsewhere, then the thief
probably does have the right to make copies and redistribute
them under the GPL, but if he is imprisoned for stealing the
CD he may have to wait until his release before doing so.
If the version in question is unpublished and considered by
a company to be its trade secret, then publishing it may be
a violation of trade secret law, depending on other
circumstances. The GPL does not change that. If the company
tried to release its version and still treat it as a trade
secret, that would violate the GPL, but if the company
hasn't released this version, no such violation has
occurred.
I find this interpretation more than dubious. If the version has
been released "elsewhere", that does not give the thief the right to
make copies and redistribute them. It only gives the people I have
released the software to those rights, and those that they have
chosen themselves to pass the software onto.

In all cases, copyright law does not apply to the media, but rather
property law concerning the copies that may not be used for any
purpose legally, including using as coasters. When the thief chooses
to redistribute the software by copying from them, this is

a) a criminal offense, since he makes use of stolen goods
b) not covered by a legal licence.

The media owner can sue for a), the copyright holder might then choose
to sue for damages because of b). Of course, the amount of damages
that can be claimed before court depend on the kind of circulation
that exists legally. It would be pretty much useless for the FSF to
sue for redistributed gcc copies from stolen CDs, for example. But
that does not magically make the act legal or give the thiefs any
rights, it just makes it unlikely that he will get sued. Things are
different with specialized software under the GPL that is handed out
at high price to only selected parties: there it would be reasonably
easy to show damage.

Or when I am developing GPLed packages under contract, I plan to
release to the public eventually. If somebody steals my work and
sends it on before the time, I can lose my payments. Also, I can get
into a lot of additional work dealing with unnecessary bug reports if
unreleased versions are floating around.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
Stephen J. Turnbull
2003-09-19 13:40:51 UTC
Permalink
os> The GPL FAQ seems to see two orthogonal issues here. I
os> believe, from its point of view every person is automatically
os> granted with the rights covered by the GPL, provided, of
os> course, that a person can get hold of a copy.

That's what clause 0 of the GPL says. Whether it would stand up in
court in case of theft is another matter.

os> The entitlement happens for everybody as soon as the software
os> is released. Stealing is a separate issue, which does not
os> affect the copyright aspect.

That's right, for parts of the work already GPLed.

However, if there is any proprietary (ie, not specifically licensed
under the GPL) code included, then it is _not_ covered by the GPL. As
long as you have not distributed that code, you retain copyright, ie,
all rights, by default. Since you haven't distributed, you have done
nothing to require that your code be GPLed, even if you have accepted
the GPL itself (eg, by past redistribution of verbatim copies). So
you can sue the thief under copyright law, and you can reclaim copies
from third parties.

I think this preserves all the rights to "work-in-progress" that David
is worried about.

os> I wonder whether that particular case is different again. I
os> wonder whether your code actually _can_ be covered by the GPL,
os> before you deliver it to anybody.

Yes, it can. See clause 0. This could be useful: suppose you get hit
by a train. Your heirs sell your notebooks _but not the copyrights_
to a library, and now anyone who reads them may copy and publish
because it's under the GPL. Very hypothetical, of course.

os> Maybe I will ask my flat mate.

Please do. :-)
--
Institute of Policy and Planning Sciences http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.
Richard Stallman
2003-09-19 15:06:25 UTC
Permalink
I find this interpretation more than dubious. If the version has
been released "elsewhere", that does not give the thief the right to
make copies and redistribute them.

Our FAQ reports the result of a discussion with our lawyer.
That is our position on the issue.
Richard Stallman
2003-09-18 11:06:05 UTC
Permalink
Post by Stephen J. Turnbull
Under copyright law, you are free to run this copy of GNU Emacs.
Actually, not even that is true. If I steal some Linux CD's
including only free software, I don't acquire the right to run the
software.

If they are truly Linux CDs, you could not run them anyway, since a
kernel alone won't run. But if they were CDs of a released version of
GNU/Linux, then you could run them.

I discussed this issue with our lawyer, and we concluded that if there
was no trade secret in the code you stole, you do have the GPL rights
in using it.
Stephen J. Turnbull
2003-09-19 10:49:19 UTC
Permalink
David> Copyright law allows you making personal copies and
David> distributing to a computer on which you'd like to use it.

I think you do not know the relevant definition of "distribution", and
in any case AFAIK copyright law allows only _backup_ copies, as sort
of a "fair use" exception (in the US).

David> I can redistribute but don't need to heed that I need to
David> include the source code? Hardly.

That is not one of the options that the GPL offers. Your claim is
equivalent to understanding "you can go to the supermarket and get an
apple" as meaning "without paying". Be serious.

David> But one should avoid stating misleading things.

You have amply proved that there is no way to avoid misunderstanding
if the reader wilfully misunderstands. Either we assume a reasonable,
honest reader, or we are forced to present the exact license terms.
--
Institute of Policy and Planning Sciences http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.
Kevin Ryde
2003-09-21 00:51:17 UTC
Permalink
Post by Stephen J. Turnbull
Summary
Under copyright law, you are free to run this copy of GNU Emacs. The
following General Public License states and protects additional rights
that you possess. You need not accept or decline the License; you
simply exercise those rights, as defined in the License, at your
option. Please read it to learn precisely what they are.
As a suggestion, the first couple of paragraphs of the emacs manual
("Distrib"), and variations in other gnu manuals, seem a nice little
introduction to the terms.
Post by Stephen J. Turnbull
This license is extended from the Free Software Foundation, and any
authors of modifications, to you. Since all are free to modify and
redistribute this software, no one can accept liability for any
defects or problems
That's not quite the reason stated in the gpl for no warranty is it?

(Though I don't pretend to know if it matters what reason, if any, is
stated.)

Frank Schmitt
2003-09-16 06:17:45 UTC
Permalink
Post by Peter S Galbraith
Actually, I suggest that you take David's advise do display the
"Thank you." and "I knew that."
instead of not displaying the GPL. Why? Free software is not as
well-known in the Windows world (although someone installing Emacs might
already have a clue) and I know maybe people that click "I accept"
without even reading anything when they encounter an EULA. If they saw
Thank you." and "I knew that.", they might be surprised and read the
GPL. Then that's one more person that goes "Wow, that's neat."
What I've done now is to display the GPL after installation is
finished, the user hasn't to say something like "I accept" but to push
a button labelled "OK".

Regarding the sources: I've limited webspace, so I've just mailed the
administrator of the university where I study, if I can put the sources
on their ftp server, if he says it's ok, I'll publish the installer
this week.
--
Did you ever realize how much text fits in eighty columns? If you now consider
that a signature usually consists of up to four lines, this gives you enough
space to spread a tremendous amount of information with your messages. So seize
this opportunity and don't waste your signature with bullshit nobody will read.
Benjamin Riefenstahl
2003-09-12 19:44:33 UTC
Permalink
Hi Frank,


Some thoughts.
then the registry entries which would normally be set by running
addpm.exe are added
AFAIK, these are not necessary any more, so if I were you, I wouldn't
do that.
If $HOME has been set by the installer, the user is now prompted for
a reboot and installation is finished.
Don't know how you are setting the variable on W9x/Me, but on
NT/W2K/XP, you don't needs a reboot for this. I think you need to
send a notication message so that the Windows Explorer picks up the
new variable, but that's all.


benny
Peter Lee
2003-09-12 20:07:49 UTC
Permalink
Benjamin> Don't know how you are setting the variable on W9x/Me,
Benjamin> but on NT/W2K/XP, you don't needs a reboot for this. I
Benjamin> think you need to send a notication message so that the
Benjamin> Windows Explorer picks up the new variable, but that's
Benjamin> all.


Windows Explorer doesn't need it... Emacs (and cygwin if you have that
installed) need it, but they'll pick it up just be restarting the app.
If you set it at install, the first time emacs is started, it will
pick up $HOME.
Jason Rumney
2003-09-12 21:00:06 UTC
Permalink
Post by Peter Lee
Benjamin> Don't know how you are setting the variable on W9x/Me,
Benjamin> but on NT/W2K/XP, you don't needs a reboot for this. I
Benjamin> think you need to send a notication message so that the
Benjamin> Windows Explorer picks up the new variable, but that's
Benjamin> all.
Windows Explorer doesn't need it...
I apologise if you've tried this and verified it to be the case, but
I would have expected a notification message to be required, since
Emacs is started as a subprocess of explorer.exe, and inherits its
environment. Perhaps you are thinking of the case where a user
manually changes the environment using the control panel applet, in
which case, the applet will take care of sending this notification
message.
Peter Lee
2003-09-13 02:27:53 UTC
Permalink
Jason> I apologise if you've tried this and verified it to be the
Jason> case, but I would have expected a notification message to
Jason> be required, since Emacs is started as a subprocess of
Jason> explorer.exe, and inherits its environment. Perhaps you are
Jason> thinking of the case where a user manually changes the
Jason> environment using the control panel applet, in which case,
Jason> the applet will take care of sending this notification
Jason> message.

I was thinking of that case... Sorry for the confusion.
Frank Schmitt
2003-09-12 20:47:43 UTC
Permalink
Post by Benjamin Riefenstahl
then the registry entries which would normally be set by running
addpm.exe are added
AFAIK, these are not necessary any more, so if I were you, I wouldn't
do that.
Well, if it isn't necessary anymore, why is it done when installing via
make install?
Post by Benjamin Riefenstahl
If $HOME has been set by the installer, the user is now prompted for
a reboot and installation is finished.
Don't know how you are setting the variable on W9x/Me, but on
NT/W2K/XP, you don't needs a reboot for this. I think you need to
send a notication message so that the Windows Explorer picks up the
new variable, but that's all.
I'm adding the environment variables und NT systems by adding a key to
the registry under HKCU/Environment and on 9x systems by modifying
autoexec.bat. In both cases you have to restart (ok, on NT systems, it's
enough to log out and log in again) to make changes have effect. Their
might be other solution, but I don't know about them.
--
Did you ever realize how much text fits in eighty columns? If you now consider
that a signature usually consists of up to four lines, this gives you enough
space to spread a tremendous amount of information with your messages. So seize
this opportunity and don't waste your signature with bullshit nobody will read.
Benjamin Riefenstahl
2003-09-13 14:01:05 UTC
Permalink
Hi Frank,
Post by Frank Schmitt
Post by Benjamin Riefenstahl
then the registry entries which would normally be set by running
addpm.exe are added
AFAIK, these are not necessary any more, so if I were you, I
wouldn't do that.
Well, if it isn't necessary anymore, why is it done when installing
via make install?
I don't exactly know. Probably because nobody bothered to remove the
code from the Makefile. Or maybe it's to make certain debugging
scenarios easier, as the defaults are to use the files as installed in
relation to the binary, which is not always what you want for
debugging.

Anyway I believe the recommended way of installing Emacs on Windows
these days is just unpacking the binary archive and starting
runemacs.exe, without an installer and without addpm.exe. So these
settings are not needed obviously. AFAIK the settings are set as
environment variables by runemacs.exe, based on the executable path,
before runemacs.exe hands over to emacs.exe.
Post by Frank Schmitt
I'm adding the environment variables und NT systems by adding a key
to the registry under HKCU/Environment and on 9x systems by
modifying autoexec.bat. In both cases you have to restart (ok, on NT
systems, it's enough to log out and log in again) to make changes
have effect. Their might be other solution, but I don't know about
them.
I think the message WM_SETTINGCHANGE is the one to send, check MSDN
for usage. I'm slightly irritated that the install framework that you
use doesn't have prepackaged functions for this task.


benny
Frank Schmitt
2003-09-14 07:47:56 UTC
Permalink
Post by Benjamin Riefenstahl
Post by Frank Schmitt
I'm adding the environment variables und NT systems by adding a key
to the registry under HKCU/Environment and on 9x systems by
modifying autoexec.bat. In both cases you have to restart (ok, on NT
systems, it's enough to log out and log in again) to make changes
have effect. Their might be other solution, but I don't know about
them.
I think the message WM_SETTINGCHANGE is the one to send, check MSDN
for usage. I'm slightly irritated that the install framework that you
use doesn't have prepackaged functions for this task.
Thanks, I'll look it up. The install framework has no predefined
functionality yet to update environment variables, so I had to do this
in a script manually.
--
Did you ever realize how much text fits in eighty columns? If you now consider
that a signature usually consists of up to four lines, this gives you enough
space to spread a tremendous amount of information with your messages. So seize
this opportunity and don't waste your signature with bullshit nobody will read.
Eli Zaretskii
2003-09-13 09:46:08 UTC
Permalink
Date: Fri, 12 Sep 2003 18:20:14 +0200
During the last days, I've created a Windows Installer for GNU
You may wish to check out the Emacs installer written as part of the
"GNU Software for MS-Windows and MS-DOS" CD-ROM, published by the FSF.
(I can send you the source of the latest version, if you want.) That
code, written by Andrew Innes, is under GPL, and I think if someone
wants to maintain an official GNU installer for NTEmacs, that code
should be a good starting place, I think.
My installer currently installs a CVS snapshot of Emacs' head from
09/09/03 plus the dll's needed to display inline images
With the CVS snapshot, you will need to compile Emacs first, won't
you?
The installer was created with the help of two free tools: Inno Setup 4
(http://www.jrsoftware.org/isinfo.htm OK, I don't really know if the
software can really be called free, it's published under a somewhat
BSD-like license, see http://www.jrsoftware.org/files/is/license.txt) to
create the installer and 7-zip (http://www.7-zip.org/ published under
the LGPL) to compress it to the size of 17.2 mb (uncompressed about
93mb).
One advantage of the installer I mentioned is that it is acompletely
stand-alone, so none of the legal issues you mention even arise.
Frank Schmitt
2003-09-13 11:10:29 UTC
Permalink
Post by Eli Zaretskii
Date: Fri, 12 Sep 2003 18:20:14 +0200
During the last days, I've created a Windows Installer for GNU
You may wish to check out the Emacs installer written as part of the
"GNU Software for MS-Windows and MS-DOS" CD-ROM, published by the FSF.
(I can send you the source of the latest version, if you want.) That
code, written by Andrew Innes, is under GPL, and I think if someone
wants to maintain an official GNU installer for NTEmacs, that code
should be a good starting place, I think.
Yes, I'd of course be interested in the code, however I doubt that a
stand-alone installer written from scratch can be as solid (e.g. in
terms of uninstalling, rolling back changes when an error occurs during
installing etc.) and easy to maintain as an installer produced by a
tool, developed simply for the purpose of building installers.
Post by Eli Zaretskii
My installer currently installs a CVS snapshot of Emacs' head from
09/09/03 plus the dll's needed to display inline images
With the CVS snapshot, you will need to compile Emacs first, won't
you?
OK, it installs binaries compiled by me of the CVS snapshot.
Post by Eli Zaretskii
The installer was created with the help of two free tools: Inno Setup 4
(http://www.jrsoftware.org/isinfo.htm OK, I don't really know if the
software can really be called free, it's published under a somewhat
BSD-like license, see http://www.jrsoftware.org/files/is/license.txt) to
create the installer and 7-zip (http://www.7-zip.org/ published under
the LGPL) to compress it to the size of 17.2 mb (uncompressed about
93mb).
One advantage of the installer I mentioned is that it is acompletely
stand-alone, so none of the legal issues you mention even arise.
There are no legal issues, I just use the tools to create the
installer, they aren't part of it.

Just to give you an idea what the difference is: I created the install
by running this script, the rest does Inno Setup for me:

,----
| [Setup]
| AppName=GNU Emacs
| AppVerName=CVS (!) GNU Emacs 09/09/2003 unofficial binary
| AppPublisher=Frank Schmitt
| AppPublisherURL=http://www.geheimdienst.de/emacs/
| AppSupportURL=http://www.geheimdienst.de/emacs/
| AppUpdatesURL=http://www.geheimdienst.de/emacs/
| DefaultDirName={pf}\CVSEmacs
| DefaultGroupName=GNU Emacs
| AllowNoIcons=yes
| SourceDir=c:\Programme\Inno Setup 3\Emacs\
| Compression=none
| InternalCompressLevel=0
| UseSetupLdr=no
| InfoAfterFile=gpl.rtf
|
| [Tasks]
| Name: "desktopicon"; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"; Flags: unchecked
| Name: "quicklaunchicon"; Description: "Create a &Quick Launch icon"; GroupDescription: "Additional icons:"; Flags: unchecked
|
| [Registry]
| Root: HKLM; Subkey: "Software\GNU"; Flags: uninsdeletekeyifempty; Check: IsAdmin
| Root: HKLM; Subkey: "Software\GNU\Emacs"; Flags: uninsdeletekey; Check: IsAdmin
| Root: HKLM; Subkey: "Software\GNU\Emacs"; ValueType: expandsz; ValueName: "emacs_dir"; ValueData: "{app}"; Flags: uninsdeletekey; Check: IsAdmin
| Root: HKLM; Subkey: "Software\GNU\Emacs"; ValueType: expandsz; ValueName: "EMACSLOADPATH"; ValueData: "%emacs_dir%/site-lisp;%emacs_dir%/../site-lisp;%emacs_dir%/lisp;%emacs_dir%/leim"; Flags: uninsdeletekey; Check: IsAdmin
| Root: HKLM; Subkey: "Software\GNU\Emacs"; ValueType: expandsz; ValueName: "SHELL"; ValueData: "%emacs_dir%/bin/cmdproxy.exe"; Flags: uninsdeletekey; Check: IsAdmin
| Root: HKLM; Subkey: "Software\GNU\Emacs"; ValueType: expandsz; ValueName: "EMACSDATA"; ValueData: "%emacs_dir%/etc"; Flags: uninsdeletekey; Check: IsAdmin
| Root: HKLM; Subkey: "Software\GNU\Emacs"; ValueType: expandsz; ValueName: "EMACSPATH"; ValueData: "%emacs_dir%/bin"; Flags: uninsdeletekey; Check: IsAdmin
| Root: HKLM; Subkey: "Software\GNU\Emacs"; ValueType: expandsz; ValueName: "EMACSDOC"; ValueData: "%emacs_dir%/etc"; Flags: uninsdeletekey; Check: IsAdmin
| Root: HKLM; Subkey: "Software\GNU\Emacs"; ValueType: expandsz; ValueName: "TERM"; ValueData: "cmd"; Flags: uninsdeletekey; Check: IsAdmin
| Root: HKCU; Subkey: "Software\GNU"; Flags: uninsdeletekeyifempty; Check: IsUser
| Root: HKCU; Subkey: "Software\GNU\Emacs"; Flags: uninsdeletekey; Check: IsUser
| Root: HKCU; Subkey: "Software\GNU\Emacs"; ValueType: expandsz; ValueName: "emacs_dir"; ValueData: "{app}"; Flags: uninsdeletekey; Check: IsUser
| Root: HKCU; Subkey: "Software\GNU\Emacs"; ValueType: expandsz; ValueName: "EMACSLOADPATH"; ValueData: "%emacs_dir%/site-lisp;%emacs_dir%/../site-lisp;%emacs_dir%/lisp;%emacs_dir%/leim"; Flags: uninsdeletekey; Check: IsUser
| Root: HKCU; Subkey: "Software\GNU\Emacs"; ValueType: expandsz; ValueName: "SHELL"; ValueData: "%emacs_dir%/bin/cmdproxy.exe"; Flags: uninsdeletekey; Check: IsUser
| Root: HKCU; Subkey: "Software\GNU\Emacs"; ValueType: expandsz; ValueName: "EMACSDATA"; ValueData: "%emacs_dir%/etc"; Flags: uninsdeletekey; Check: IsUser
| Root: HKCU; Subkey: "Software\GNU\Emacs"; ValueType: expandsz; ValueName: "EMACSPATH"; ValueData: "%emacs_dir%/bin"; Flags: uninsdeletekey; Check: IsUser
| Root: HKCU; Subkey: "Software\GNU\Emacs"; ValueType: expandsz; ValueName: "EMACSDOC"; ValueData: "%emacs_dir%/etc"; Flags: uninsdeletekey; Check: IsUser
| Root: HKCU; Subkey: "Software\GNU\Emacs"; ValueType: expandsz; ValueName: "TERM"; ValueData: "cmd"; Flags: uninsdeletekey; Check: IsUser
|
|
| [Dirs]
| Name: "{app}\bin"
| Name: "{app}\data"
| Name: "{app}\etc"
| Name: "{app}\info"
| Name: "{app}\leim"
| Name: "{app}\lisp"
| Name: "{app}\lock"
| Name: "{app}\site-lisp"
|
| [Files]
| Source: "bin\*.*"; DestDir: "{app}\bin\"; Flags: ignoreversion recursesubdirs
| Source: "etc\*.*"; DestDir: "{app}\etc\"; Flags: ignoreversion recursesubdirs
| Source: "info\*.*"; DestDir: "{app}\info\"; Flags: ignoreversion recursesubdirs
| Source: "leim\*.*"; DestDir: "{app}\leim\"; Flags: ignoreversion recursesubdirs
| Source: "lisp\*.*"; DestDir: "{app}\lisp\"; Flags: ignoreversion recursesubdirs
| Source: "site-lisp\subdirs.el"; DestDir: "{app}\site-lisp\"; Flags: ignoreversion
|
| [Icons]
| Name: "{group}\Emacs"; Filename: "{app}\bin\runemacs.exe"
| Name: "{group}\Uninstall Emacs"; Filename: "{uninstallexe}"
| Name: "{userdesktop}\Emacs"; Filename: "{app}\bin\runemacs.exe"; Tasks: desktopicon
| Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Emacs"; Filename: "{app}\bin\runemacs.exe"; Tasks: quicklaunchicon
|
| [Run]
| Filename: "{app}\bin\runemacs.exe"; Description: "Launch Emacs"; Flags: nowait postinstall skipifsilent
|
| [Code]
| var
| HomeDir: String;
| reboot: boolean;
| HomeNotSet: boolean;
|
| function InitializeSetup(): Boolean;
| begin
| reboot := false;
| HomeDir := GetEnv('HOME');
| if (HomeDir='') then HomeNotSet := true else HomeNotSet := false;
| { Let Setup run }
| Result := True;
| end;
|
| function IsAdmin(): Boolean;
| begin
| result := IsAdminLoggedOn();
| end;
|
| function IsUser(): Boolean;
| begin
| result := not isAdmin();
| end;
|
| function NeedRestart(): boolean;
| begin
| result := reboot;
| end;
|
| function CreateHomeDir(Home: String): boolean;
| begin
| if not (DirExists(Home)) then ForceDirectories(Home);
| end;
|
| function AddHomeToEnv(Home: String): boolean;
| begin
| if (UsingWinNT()) then begin
| result := RegWriteStringValue(HKCU, 'Environment', 'HOME', Home);
| end else begin
| if FileCopy(ExpandConstant('{sd}')+'\autoexec.bat', ExpandConstant('{sd}')+'\autoexec.old', false) then begin
| result := SaveStringToFile(ExpandConstant('{sd}')+'\autoexec.bat', #13 + #10 + 'set HOME='+Home, true)
| end else begin
| result := false;
| end;
| end;
| end;
|
| procedure CurStepChanged(CurStep: Integer);
| begin
| if (CurStep = csFinished) and (HomeNotSet) and (not (HomeDir='')) then
| begin
| AddHomeToEnv(HomeDir);
| CreateHomeDir(HomeDir);
| end;
| end;
|
| function IsCorrectDir(Dir: String): boolean;
| begin
| if (Length(Dir)<4) then begin
| result := false
| end else begin
| if ((StrGet(HomeDir,2) = ':') and (StrGet(HomeDir,3) = '\')) then begin
| result := true
| end else begin
| if ((StrGet(HomeDir,1) = '\') and (StrGet(HomeDir,2) = '\')) then begin
| result := true;
| end;
| end;
| end;
| end;
|
| function ScriptDlgPages(CurPage: Integer; BackClicked: Boolean): Boolean;
| var
| Next: Boolean;
| UserName: String;
| DontSetHome: String;
| CurSubPage : Integer;
| begin
| if (HomeNotSet) and ((not BackClicked and (CurPage = wpSelectDir)) or (BackClicked and (CurPage = wpReady))) then begin
| if not BackClicked then
| CurSubPage := 0
| else
| CurSubPage := 1;
| { Insert a custom wizard page between two non custom pages }
| { First open the custom wizard page }
| while (CurSubPage = 0) or (CurSubPage = 1) and not Terminated do begin
| ScriptDlgPageOpen();
| { Set some captions }
| case CurSubPage of
| 0:
| begin
| ScriptDlgPageSetCaption('Home Directory');
| ScriptDlgPageSetSubCaption1('Environment variable HOME undefined');
| ScriptDlgPageSetSubCaption2('Emacs and most other unix-derived applications store their configuration files in the directory pointed to by the environment variable HOME. Setup can set this environment variable for you if you want.');
| Next := InputOption('Do not set environment variable HOME.', DontSetHome);
| end;
| 1:
| begin
| UserName := GetUserNameString();
| if (Pos(' ', UserName) > 0) then StringChange(UserName, ' ', '');
| HomeDir := 'C:\Home\'+ UserName;
| if (DontSetHome='0') then begin
| reboot := true;
| ScriptDlgPageSetCaption('Select Home Directory');
| ScriptDlgPageSetSubCaption1('Please select an appropriate directory');
| ScriptDlgPageSetSubCaption2('Neither the directory name nor the path to the directory should contain spaces.');
| { Ask for a dir until the user has entered one or click Back or Cancel }
| Next := InputDir(UserName, HomeDir);
| while Next and (not IsCorrectDir(HomeDir)) do begin
| MsgBox(SetupMessage(msgInvalidPath), mbError, MB_OK);
| Next := InputDir(UserName, HomeDir);
| end;
| { See NextButtonClick and BackButtonClick: return True if the click should be allowed }
| end else begin
| reboot := false;
| end;
| end;
| end;
| if Next then begin
| CurSubPage := CurSubPage + 1;
| end else
| CurSubPage := CurSubPage - 1;
| end;
| if not BackClicked then
| Result := Next
| else
| Result := not Next;
| { Close the wizard page. Do a FullRestore only if the click (see above) is not allowed }
| ScriptDlgPageClose(not Result);
| end else begin
| Result := True;
| end;
| end;
|
| function NextButtonClick(CurPage: Integer): Boolean;
| begin
| Result := ScriptDlgPages(CurPage, False);
| end;
|
| function BackButtonClick(CurPage: Integer): Boolean;
| begin
| Result := ScriptDlgPages(CurPage, True);
| end;
`----
--
Did you ever realize how much text fits in eighty columns? If you now consider
that a signature usually consists of up to four lines, this gives you enough
space to spread a tremendous amount of information with your messages. So seize
this opportunity and don't waste your signature with bullshit nobody will read.
Richard Stallman
2003-09-13 13:57:19 UTC
Permalink
If I publish it on my website, do I have to publish the sourcecode,

Yes, you do. See http://www.gnu.org/licenses/gpl-faq.html
for answers to this and many similar questions.
Frank Schmitt
2003-09-13 19:25:06 UTC
Permalink
Post by Frank Schmitt
If I publish it on my website, do I have to publish the sourcecode,
Yes, you do. See http://www.gnu.org/licenses/gpl-faq.html
for answers to this and many similar questions.
Well, I see "Does the GPL require that source code of modified versions
be posted to the public?" and "Yes" as the answer, but this version
isn't modified.
--
Did you ever realize how much text fits in eighty columns? If you now consider
that a signature usually consists of up to four lines, this gives you enough
space to spread a tremendous amount of information with your messages. So seize
this opportunity and don't waste your signature with bullshit nobody will read.
Continue reading on narkive:
Loading...