[9093] in Perl-Users-Digest

home help back first fref pref prev next nref lref last post

Perl-Users Digest, Issue: 2711 Volume: 8

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Sun May 24 22:07:31 1998

Date: Sun, 24 May 98 19:00:25 -0700
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)

Perl-Users Digest           Sun, 24 May 1998     Volume: 8 Number: 2711

Today's topics:
    Re: Clearly define "free software" <hp@pobox.com>
    Re: Clearly define "free software" (Jimen Ching)
    Re: Clearly define "free software" <barmar@bbnplanet.com>
    Re: Clearly define "free software" <barmar@bbnplanet.com>
    Re: Clearly define "free software" <hp@pobox.com>
        Evaluate some code (John Stanley)
    Re: Fastest way to read the last 'n' records in a file <rootbeer@teleport.com>
    Re: GNU attacks on the open software community (John Stanley)
    Re: GNU attacks on the open software community (Leslie Mikesell)
    Re: GNU attacks on the open software community (Chris Nandor)
    Re: GPL documentation == unspeakable evil (Chris Nandor)
        how to make a Perl program receive email under Unix? <benjamin.geer@worldnet.att.net>
    Re: Perl 5.005_xxx <ljz@asfast.com>
    Re: Perl access to Paradox database <metcher@spider.herston.uq.edu.au>
        Perl and Web.pl, Gd Library, dmake question on NT <telenet@citenet.net>
        Perl on Amiga <andrew@nospam.gpsoft.com.au>
    Re: Perl Win95 Question (Leiming Qian)
    Re: Perl Win95 Question (Bob Trieger)
    Re: Perl/Wall lingo question (Craig Berry)
    Re: Problem with Crypt command. Passwords don't match. <jdf@pobox.com>
    Re: Problem with Crypt command. Passwords don't match. (Danny Aldham)
        Return via call-by-value in OLE function <dwarren@starnetinc.com>
        Sending local files to the server via form on a web pag <a.amemiya@asahi-jc.com>
        Digest Administrivia (Last modified: 8 Mar 97) (Perl-Users-Digest Admin)

----------------------------------------------------------------------

Date: Sun, 24 May 1998 23:18:56 GMT
From: robert havoc pennington <hp@pobox.com>
Subject: Re: Clearly define "free software"
Message-Id: <wsnogwnuujj.fsf@harper.uchicago.edu>

tzs@halcyon.com (Tim Smith) writes:
> 
> FSF is somewhat confused on this point.
>

Quite possibly, or I could be explaining their position
incorrectly. Your description makes a lot of sense too - I'm afraid
IANAL and am not in a position to figure out who is correct. :(

> Unfortunately for FSF, they have stated that it does *not* violate the
> GPL for a user to link (not just dynamically link, by the way) GPL'ed
> code with non-GPL'ed code as long as the user does not try to distribute
> the result.  That eliminates any possibility of contributory
> infringement.
> 

And they would have to restrict use rather than distribution to do
so. A dilemma.

Havoc Pennington ==== http://pobox.com/~hp


------------------------------

Date: 24 May 1998 14:25:26 +1000
From: jching@flex.com (Jimen Ching)
Subject: Re: Clearly define "free software"
Message-Id: <3568ba76.0@coconut-wireless>

robert havoc pennington (hp@pobox.com) wrote:
>ilya@math.ohio-state.edu (Ilya Zakharevich) writes:
>> Note that this is exactly look-and-feel copyrighting, since to link a
>You are mistaken. A license can only prohibit linking with a
>particular implementation of the interface. The interface itself is
>not prohibited; you are free to implement it yourself and link it
>with whatever you want.

What you are saying is I can't do the following.  Assume the FSF implemented
an API and put it under the GPL.  Microsoft also implemented that API, but
only releases binaries.

1.  I write a software (proprietary) 'using' that API.
2.  I link with the Microsoft implementation.
3.  I found a problem with my software, I suspect the problem to be in
the API implementation, but can't be sure.
4.  I try to reverse engineer Microsofts implementation, but it proves
to be too much effort.
5.  I rename Microsofts binary.
6.  I ftp FSF's implementation and place it in the same location as the
Microsoft implementation.
7.  I run my software to debug it.  The bug turned out to be in my software.
8.  I release my proprietary software with the bug fixed.
9.  A user runs my software with Microsoft's implementation.
10.  The user finds the same bug.
11.  The user finds out that an FSF implementation of the API is available
and obtains a copy and replaces the Microsoft implementation[1].
12.  The user runs my software and the bug is gone.

[1] Does it matter how the user found out?  If so, why?  Answer questions
2 and 3 below.

Now, answer the following questions:

1.  At what point was the law broken?
2.  Can you provide a legal document that supports your conclusion?
3.  Can you point to the clause in the GPL that supports your conclusion?

Let me change the situation a little.  What if, instead of Microsoft above,
I implemented the API.  Is the answer for the above three questions the
same?

And one last change.  What if I didn't release the implementation of the
API at all?  No source, no binary.  Would the answers be different?  If so,
can you explain why?  Can you answer questions 2 and 3 above, based on your
explanation?

Don't get me wrong, I support the goal of the GPL.  I even support the
means used to achieve that goal.  But I do not support making up rules
as we go.  This is not professional.  Unless a professional organization,
in this case a court of law, made the change.  I simply can't support
this kind of behavior.

This is not directed at you specifically, hp, but to all of those who
agree with your conclusion.

--jc
--
Jimen Ching (WH6BRR)      jching@flex.com     wh6brr@uhm.ampr.org


------------------------------

Date: Mon, 25 May 1998 00:55:20 GMT
From: Barry Margolin <barmar@bbnplanet.com>
Subject: Re: Clearly define "free software"
Message-Id: <Yj3a1.32$5K2.773818@cam-news-reader1.bbnplanet.com>

In article <E4C813D06F3694DA.29DFDB455831A2D5.8709D32254F36E8C@library-proxy.airnews.net>,
le Fanttme <fantome/@/usa/./net> wrote:
>On Fri, 22 May 1998 04:25:04 GMT, Barry Margolin
><barmar@bbnplanet.com> wrote:
>>You can link with proprietary libraries, but you can't redistribute the
>>result.  That's because the recipient would be restricted in what *he*
>>could do with it.  Giving you the rights you want means depriving someone
>>else of their rights.  RMS chose to preserve the users' rights over those
>>of the people who want to make a proprietary derived works.
>
>Would the recipient be restricted? Those who need the modified package
>would probably have the proprietary library, anyway.

Why is that so probable?

You keep using Oracle as an example.  So you write a program that uses
Oracle libraries, and I want to use it.  But I don't have Oracle.  So
before I could use your program, I would have to buy Oracle.

The GPL doesn't allow you to distribute incomplete derived works that
require the user to buy other, proprietary software to use them.  This
would permit you to create a derived work that's *almost* functional, but
then require the user to purchase a little "enabler" from you that makes
the program work.  In order to prohibit these end-runs around the rules,
the GPL has to prohibit all such combinations.

-- 
Barry Margolin, barmar@bbnplanet.com
GTE Internetworking, Powered by BBN, Cambridge, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.


------------------------------

Date: Mon, 25 May 1998 01:00:07 GMT
From: Barry Margolin <barmar@bbnplanet.com>
Subject: Re: Clearly define "free software"
Message-Id: <ro3a1.33$5K2.773818@cam-news-reader1.bbnplanet.com>

In article <B84A40540D3CC8E1.AECBB570ADA7C61A.53DD91CBD7941E65@library-proxy.airnews.net>,
le Fanttme <fantome/@/usa/./net> wrote:
>On Fri, 22 May 1998 04:54:08 GMT, Barry Margolin
><barmar@bbnplanet.com> wrote:
>>Because your right to distribute this would interfere with the recipient's
>>right to modify.  You can't both win, so one of you has to lose, and it's
>>the one who wants to make a proprietary version.
>
>Actually, that's not true. The recipient would have the right to
>modify the GNU GPLed source to work with another proprietary (or free)
>licensed library/package. If I wrote something which interacted with
>Oracle, you could possibly make it work with Sybase or maybe even gdbm
>if you wanted to do so.

But that's not what I said.  The user should have the right to modify the
entire thing.

What you're describing is more like what the GLPL permits.  A library
distributed under the GLPL can be linked into a proprietary program, and
the result distributed, so long as you provide the library source and
object modules for the proprietary program, so that the user can modify the
library and then relink everything.  But the GPL is designed to provide
rights to the entire program, not just the parts that were originally
GPLed.  This "infectious" nature is critical to the goal of moving towards
the ideal world where all software is free.  He wants to encourage others
to free their work, by using GPL software as enticement.

-- 
Barry Margolin, barmar@bbnplanet.com
GTE Internetworking, Powered by BBN, Cambridge, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.


------------------------------

Date: Mon, 25 May 1998 01:34:10 GMT
From: robert havoc pennington <hp@pobox.com>
Subject: Re: Clearly define "free software"
Message-Id: <wsnlnrruoa5.fsf@harper.uchicago.edu>

jching@flex.com (Jimen Ching) writes:
> 
> Don't get me wrong, I support the goal of the GPL.  I even support the
> means used to achieve that goal.  But I do not support making up rules
> as we go.  This is not professional.  Unless a professional organization,
> in this case a court of law, made the change.  I simply can't support
> this kind of behavior.
> 

IANAL and I won't try to be one. The law on all software licensing is
very vague, even if I knew anything about it. Because copyright law
was not designed for software, among other reasons. It's certainly an
exercise in futility to try and work out the elaborate example you
posted.

However, if you ask the FSF as copyright holder, they will tell you
that you can't link with their GPL library and keep the software
proprietary. They have always said that - they aren't making up rules
as they go. That's why the LGPL exists and has existed for about 6
years, to avoid this rule. They seem to have at least one lawyer who
agrees with them that this is a consequence of the GPL.

The bottom line on the GPL is that no one will know what it "really"
requires you to do until there's a lawsuit and a precedent is
set. However, if you link one of the FSF's GPL libraries into
proprietary code and distribute it, you can be reasonably sure that
the FSF will sue you. For most people that's probably enough of a
deterrent.

Havoc Pennington ==== http://pobox.com/~hp


------------------------------

Date: 24 May 1998 23:22:59 GMT
From: stanley@skyking.OCE.ORST.EDU (John Stanley)
Subject: Evaluate some code
Message-Id: <6kaa4j$nfe$1@news.NERO.NET>

Ok, so here is the chance you have been waiting for. I've got a bit of 
code that I am hopeful might be used for a worthy cause. It would be
very nice if it were bulletproof. So, perhaps the best way to do that is
to post it here and let the experts critique it. When you do, however,
keep in mind "there is more than one way", and that it is only a
preference and not a fatal flaw if it is done a different way.

I have tested it on my local system and it works. I cannot, however,
easily simulate the loads or conditions it will need to survive.

Here are two other considerations. The task of completing the
registration will be performed by another bit of code (currently written
in a similar style), and the task of cleaning/expiring the pending data
and registry will be done by an as-yet unwritten bit of code.

So, the paint on the bulls-eye is drying, whence comes the first arrow?

#!/usr/local/bin/perl5 -w

# process incoming mail 
#
#  1. read a message from stdin
#  2. save a safety copy
#  3. find From value
#   3a. look for "x-registered-address" and use that if present
#  4. look for From address in registration db
#  5. if registered, forward to moderator, remove copy, exit
#  6. send charter
#  7. send FAQ with keyword
#  8. send instructions
#  9. record pending status
# 10. done

# things not implemented that need to be:
#
#  1. allow x-real-address to be in first line of body
#

# John Stanley
# Oregon State University, COAS
# Corvallis, OR  97331
# 24 May 1998

# configuration stuff

# where to keep articles until registered
$pendingDir = 'pending';

# DB file of registered posters
$registryName = 'registry';

# file containing moderator addresses
$moderatorFile = 'moderators';

# the address to send registration replies to
$regAddr = 'clpm-register@fake.domain.name';

# who am _I_ when I send mail?
$iAm = 'clpm-submit@fake.domain.com';

# where is the charter?
$charterFile = 'clpm-charter';

# where is the FAQ?
$faqFile = 'clpm-faq';

# and the instructions for registering
# a separate file so nobody will be likely to return the FAQ or charter
$instructions = 'clpm-instruct';

# make a place to keep the submission
$now = time;
$safetyFile = "$now.$$";

# end of configuration

use Mail::Internet;
use Mail::Header;
use Mail::Address;
use SDBM_File;
use Fcntl;

# get the message
$in = new Mail::Internet \*STDIN, MailFrom => 'IGNORE';

# save it in case we 1) die or 2) need to wait for registration to return
open( O, ">$pendingDir/$safetyFile" ) 
		|| die "could not save copy of message: $!\n";
$in->print(\*O);
close(O);

# get the header reference
$head = $in->head();

# unfold it just to be safe
$head->unfold;

# who is this from?
$from = $head->get( 'from' );
die "no from header in incoming message\n" if !defined $from;
chomp $from;

# look for "registered address" maybe
$regAs = $head->get( 'x-registered-from' );
$from = $regAs if defined $regAs;

# get pure address part
@fromContent = Mail::Address->parse($from);
die "multiple entries on From line?\n" if $#fromContent > 0;
$addr = $fromContent[0]->address;

# open the registration database and get registration data
open( LFH, "$registryName.pag" ) || warn "cannot open registry (no lock): $!\n";
flock( LFH, 2 );
tie( %registry, 'SDBM_File', $registryName, O_CREAT|O_RDWR, 0644 ) 
	|| die "cannot tie to registry (reg-test): $!\n";
$rawdata = $registry{$addr};

# get registered flag from raw data
if (defined $rawdata) {
	$registered = (split( / /, $rawdata))[2];
}
else {
	$registered = 0;
}

# if registered 
do {

	# forward to the moderator dejour and exit happy
	# pick a moderator at random
	open( M, $moderatorFile ) || die "cannot open moderator file: $!\n";
	@mods = <M>;
	close M;
	srand( $now ^ $$ );
	$m = $mods[rand($#mods+1)];
	print "Moderator $m\n";

	# remove any incriminating headers
	$head->delete( 'x-real-address' );
	$head->delete( 'x-registered-from' );

	# open a sendmail and send it.
	# Note: WE created the list that gave us $m, so if it contains
	#  nasty things like '\r/bin/rm -rf /' its our own damn fault.
	open( M, "| sendmail $m" ) || die "could not sendmail: $!\n";
	$in->print(\*M);
	close(M);

	# unlock registery
	close( LFH );

	exit;
	
} if $registered;

# if in the registry but not fully registered, reject
do {

	# unlock registery so others can use it
	untie( %registry );
	close( LFH );

	# get real address from rawdata in registry
	($realAddr) = (split(/ /, $rawdata))[1];

	# create a new header for mail and populate
	$outH = new Mail::Header;
	$outH->add( 'Subject', 'Rejected submission' );
	$outH->add( 'To', $realAddr );
	$outH->add( 'From', $iAm );

	# start the process of mailing
	open( M, "| sendmail -t" ) || die "cannot open a sendmail: $!\n";
	$outH->print(\*M);
	print M "\n";

	print M <<EOREJ;

I am sorry, your submission cannot be processed until you complete the
registration process. The information on how to do that should have already
been sent to you. If you have questions, contact someone\@somewhere.com.

Your submission follows:

EOREJ

	$in->print(\*M);

	exit;

} if defined $rawdata;

# get here if the From is not registered at all

# look for a real address to replace munged
$real = $head->get( 'x-real-address' );
if (defined $real) {
	chomp $real;
	@realContent = Mail::Address->parse($real);
	$realAddr = $realContent[0]->address;
}
else {
	$realAddr = $addr;
}

# create an entry for the registration db, saying "pending"
$rawdata = "$addr $realAddr 0 $safetyFile";

# put it in the db
$registry{$addr} = $rawdata;
untie( %registry );
close( LFH );

# now send the data that we must to allow registration

# working with entire files, so no record sep.
undef $/;

# create a new header for mail and populate
$outH = new Mail::Header;
$outH->add( 'Subject', 'The Charter for the group' );
$outH->add( 'To', $realAddr );
$outH->add( 'From', $iAm );

# read the charter
open( I, $charterFile ) || die "what happened to the charter, charlie? $!\n";
$contents = <I>;
close(I);

# mail it
open( M, "| sendmail -t" ) || die "cannot open a sendmail: $!\n";
$outH->print(\*M);
print M "\n";
print M $contents;
close(M);

# set header for FAQ
$outH->replace( 'Subject', 'The FAQ for the group' );

# read  the FAQ
open( I, $faqFile ) || die "what happened to the FAQ, ferd? $!\n";
$contents = <I>;
close(I);

# !!! the FAQ contains the code key for registering -- which is just
#  the pending file name
$contents =~ s/SECRET_CODE/$safetyFile/;

# now mail it
open( M, "| sendmail -t" ) || die "cannot open a sendmail: $!\n";
$outH->print(\*M);
print M "\n";
print M $contents;
close(M);

# now send the instructions to the happy poster
$outH->replace( 'Subject', 'Instructions on registering for group' );
$outH->replace( 'From', $regAddr );
$outH->add( 'Reply-to', $regAddr );

# read the instructions from a file
open( I, $instructions ) || die "what happened to the instructions, Ida? $!\n";
$contents = <I>;
close(I);

# the instructions include the address that is being registered, but
# not the secret code, just a placeholder
$contents =~ s/USER_ADDR/$addr/;

# now mail it
open( M, "| sendmail -t" ) || die "cannot open a sendmail: $!\n";
$outH->print(\*M);
print M "\n";
print M $contents;
close(M);

# all done!



------------------------------

Date: Sun, 24 May 1998 23:05:44 GMT
From: Tom Phoenix <rootbeer@teleport.com>
To: Phil Taylor <phil@ackltd.demon.co.uk>
Subject: Re: Fastest way to read the last 'n' records in a file
Message-Id: <Pine.GSO.3.96.980524155415.4745Q-100000@user2.teleport.com>

On Sun, 24 May 1998, Phil Taylor wrote:

> I couldn't agree more with Tom's suggestion of using a database, but 
> unfortunately my ISP won't allow me to do this. 

Get a new ISP. :-)

Seriously, an ISP who is making you do this the slow way is making you
waste machine resources. That's not going to be good for anyone on the
machine. An ISP who would have a "no database" policy is probably foolish
in other ways as well. Should you trust a foolish ISP? 

-- 
Tom Phoenix       Perl Training and Hacking       Esperanto
Randal Schwartz Case:     http://www.rahul.net/jeffrey/ovs/



------------------------------

Date: 24 May 1998 23:10:36 GMT
From: stanley@skyking.OCE.ORST.EDU (John Stanley)
Subject: Re: GNU attacks on the open software community
Message-Id: <6ka9dc$n95$1@news.NERO.NET>

In article <266840A8EFC59C66.E01225276A0A8DE6.FF7D2DBB7D6F2649@library-proxy.airnews.net>,
le Fant me <fantome/@/usa/./net> wrote:
>If they make $80 profit per copy, then they are charging too much for
>the book given that 50% of the value of the book is from the PerlFAQ.
>As a guestimate, if the book cost $20 per copy to create, $10 of that
>would be attributable to the PerlFAQ. So if the publisher would have
>to maybe charge $60 to make the $40 which would be due to the 50% that
>the publisher created from whole cloth.

Your argument is ridiculous. 

Whether what they are charging is too much is based not on what
percentage of the book is what, it is based on whether the book will
sell enough copies to start making a profit. However, this consideration
was explicitely left out of the hypothetical situation here. The
publisher doesn't care. The price is what he sets. If you don't want to
buy the book, don't buy it. It's a vanity publisher who just wants to see
his name on books. Who cares?

Now, as for your apportioning the profit. At $100, they make $80 profit,
and since half the book is "perl", perl accounts for $40 of the profit.
Since there can be no profit on the perl, they must cut the price by
that $40.

Now the price of the book is $60. It cost $20 to produce. The profit is
now $40. Half of the book is perl, so the profit for perl is $20. But
there can be no profit, so the price must be cut by $20. 

The price for the book is now $40. It cost $20 to produce. The profit is
now $20. Half the book is perl, so the profit for perl is $10. There
can be no profit ...

This results in the publisher being required to sell the book at cost,
with no profit at all, since the only way for there to be no profit from
half a book is for there to be no profit from the whole thing.

IF you want to claim that your argument stops after one iteration for
some reason, then I will start the price of the book at $180. Then the
one iteration means that the price must be cut by $80 to ... $100.
Now we are back at the starting point.

We still have not dealt with the specific claim that including the
material is "legal" because the price of the medium was not increased
based on its inclusion. Unless this is not true, then the hypothetical
book publisher I created is within his legal rights to create the book.



------------------------------

Date: 24 May 1998 18:53:50 -0500
From: les@MCS.COM (Leslie Mikesell)
Subject: Re: GNU attacks on the open software community
Message-Id: <6kabue$qhg$1@Jupiter.Mcs.Net>

In article <m2k97eul84.fsf@mailhost.neuroinformatik.ruhr-uni-bochum.de>,
David Kastrup  <dak@mailhost.neuroinformatik.ruhr-uni-bochum.de> wrote:
>> 
>> Yes it does, if your work consists of making GPL code and non-GPL
>> code interoperate.  The GPL takes away your right to share such
>> code under any circumstances.
>
>The GPL does not take away any right, because you did not have the
>right in the first place.

Of course the right didn't exist, since the code didn't exist.  After
the code exists, why should the distribution rights belong to someone
else?

>It allows you to share the combined work of
>your code and the original code if you promise to give people the same
>rights to the combined code that you yourself received. 

If I legally obtain the right to use the other components, so can
everyone else.  That part isn't any of my business, or anyone
else's and I'm curious as to why anyone would believe otherwise.

>If you think that getting something in that manner is
>as worthless as not getting it at all, why are you interested in it in
>the first place?  Either getting source is of use, then you can let
>others share in the experience, or it isn't, in which case you would
>not be interested in GPLed software in the first place.

In most cases getting source is only of value if the source is broken
and you have to fix it yourself.  There is some small value in knowing
that you can do this as a last resort, but having something that works
right in the first place is better, in which case binary libraries
are just fine.

>>  You can write it for yourself, you
>> can use it, someone can hire you to write such code for their own
>> use, but you can't give them a copy.
>
>Of course you can.  That's the point.

Well, not without risking a court challenge.  I can't imagine the claim
that using someone else's published interfaces (linking to readline
for example) turns an otherwise independent piece into a derived
work actually standing up in court, but who wants the expense of
finding out?

  Les Mikesell
    les@mcs.com


------------------------------

Date: Sun, 24 May 1998 23:58:56 GMT
From: pudge@pobox.com (Chris Nandor)
Subject: Re: GNU attacks on the open software community
Message-Id: <pudge-2405981953210001@dynamic417.ply.adelphia.net>

In article <6ka1a3$e0m$1@mulga.cs.mu.OZ.AU>, fjh@cs.mu.oz.au (Fergus
Henderson) wrote:

# pudge@pobox.com (Chris Nandor) writes:
# 
# >In article <m2wwbclxr6.fsf@mailhost.neuroinformatik.ruhr-uni-bochum.de>,
# >David Kastrup <dak@mailhost.neuroinformatik.ruhr-uni-bochum.de> wrote:
# >
# ># > I can't see it myself.  And I haven't heard TC abusing Red Hat lately.
# ># 
# ># If he wanted to, he could sue them for inclusion of his FAQ.  So they
# ># are either being careless in including the stuff, or relying on his
# ># goodwill.
# >
# >Sure, and I can sue you for sending news to my news server.  And just like
# >Tom, I would lose such a lawsuit.  Probably wouldn't get past the pretrial
# >hearing.
# 
# Why do you think Tom C. would lose?

I have posted several times on why.  Three main reasons: one, the license
allows putting it on a for-profit CD, as long as no profit is received
specifically for the perlfaq itself.  Two, Tom loses his rights if he does
not protect them, and he has knowingly allowed CDs to distribute
for-profit CDs with perlfaq on them, and has done nothing to stop it. 
Three, Tom has specifically granted permission to put it on for-profit
CDs.

And maybe to a lesser degree (maybe not), because since perlfaq has been
on for-profit CDs for at least a year without Tom doing anything to stop
it (and in many cases granting explicit permission), to put it on another
CD does not significantly impact market effect, which (as Sandra Day
O'Connor stated) might be the most important factor in determining fair
use.

*PHEW*

-- 
Chris Nandor          mailto:pudge@pobox.com         http://pudge.net/
%PGPKey = ('B76E72AD', [1024, '0824090B CE73CA10  1FF77F13 8180B6B6'])


------------------------------

Date: Mon, 25 May 1998 00:06:00 GMT
From: pudge@pobox.com (Chris Nandor)
Subject: Re: GPL documentation == unspeakable evil
Message-Id: <pudge-2405982000260001@dynamic417.ply.adelphia.net>

In article <6ka2j8$edt$1@mulga.cs.mu.OZ.AU>, fjh@cs.mu.oz.au (Fergus
Henderson) wrote:

# pudge@pobox.com (Chris Nandor) writes:
# 
# He can ask them all to stop, and then if they don't stop,
# I think he can then sue them, can't he?

Well, he can sue regardless, the question is whether or not he would win. 
And in this case, since he has already given permission, probably not.  If
he had not given explicit permission, or took back permission and changed
the license, then maybe he could, if they (given enough time) persisted in
selling CDs with said content on them after he told them to stop. 
Possibly.  See below.


# >But an even more interesting part of copyright law is "market effect,"
# >which is related to this.  perlfaq comes with Perl, which is distributed
# >on hundreds of CPAN mirrors around the world, and (well-known to Tom),
# >thousands upon thousands of CD-ROMs.  If I put it on my CD-ROM, it would
# >have no measureable market effect, and any infringement would not be
# >actionable.
# 
# Hmm...  what if Tom C. decides to publish his FAQ as a book,
# and at the same time sends letters to all the CD-ROM distributors
# such as RedHat asking them to stop distributing PerlFAQ.
# Legallly, they would have to stop, or face being sued for damages,
# right?

I really don't think he could win.  The simple fact that thousands upon
thousands of CDs and hard drives already have it would make it very very
tough to prove any impact on market effect.  That's why you lose your
rights if you don't protect them.  Once it is out there and you did
nothing to stop it, it is out there, and you can't rein it back in.


# I think he could reasonably argue in court that if PerlFAQ
# remains readily available on CD, this could inhibit the market
# for his book, so I don't think the CD distributors could rely on the
# defense that their distribution had no market effect.
# Is that correct?

If he could prove that the continued distribution affected his market,
which is not likely.  Now, if perlfaq is changed significantly so that
this new version does not exist on thousands and thousands of CDs, then
yes, that new version can be protected much more easily than could the old
version, which is already "everywhere".

NOTE: all of the above is just exploring the very hyopthetical case of Tom
suing anyone for distributing perlfaq, which is a complete FANTASY.  He
would not do such a thing.


# >But all of this is irrelevant in light of the fact that Tom has, himself,
# >stated that including it on such CD-ROMs with the rest of the Perl
# >distribution / CPAN is OK.
# 
# True, but of course it would be much better if this was stated
# explicitly in the license conditions distributed with the PerlFAQ
# itself rather than just as some Usenet post.

Well, Tom said he is changing the wording of the license.

And as always, IANAL.

-- 
Chris Nandor          mailto:pudge@pobox.com         http://pudge.net/
%PGPKey = ('B76E72AD', [1024, '0824090B CE73CA10  1FF77F13 8180B6B6'])


------------------------------

Date: 24 May 1998 23:17:17 -0400
From: Benjamin Geer <benjamin.geer@worldnet.att.net>
Subject: how to make a Perl program receive email under Unix?
Message-Id: <6kagu2$n3j@bgtnsc02.worldnet.att.net>

For a CGI application, I need to write a Perl program (on a Unix
machine) that receives and processes email.  Is there a standard way
of doing this?

This program is going to maintain a database of images on the server,
and people will be able to submit them as MIME attachments to email
messages.  The program will have its own email account.

I'd like to have the program executed every time mail arrives in its
mailbox; is this possible?  Otherwise, is it usual to have this kind
of program running permanently, checking its email every few seconds?

I would also appreciate any recommendations about Perl modules for
processing email and MIME attachments.

-- 
Benjamin Geer
benjamin.geer@worldnet.att.net


------------------------------

Date: 24 May 1998 21:53:05 -0400
From: Lloyd Zusman <ljz@asfast.com>
Subject: Re: Perl 5.005_xxx
Message-Id: <lt90nrt8u6.fsf@asfast.com>

fl_aggie@thepentagon.com (I R A Aggie) writes:

> In article <ltpvh4qmpr.fsf@asfast.com>, Lloyd Zusman <ljz@asfast.com> wrote:
> 
> + However, it sometimes appears that those who make these comments to
> + "newbies" and others occasionally fall into knee-jerk patterns in
> + their responses.  For example, someone who wants to test a beta
> + version of perl.005_x is more than likely not a "newbie" at all.
> 
>   Things should be as simple as possible - not simpler.
>    -- Albert Einstein
> 
> While its true that someone wanting to obtain the latest-greatest _beta
> TEST_ version is not likely to be a newbie, that version of the software
> shouldn't just be laying around _anywhere_ where a newbie might lay h(is|er)
> hands on it.
> 
> I can just imagine what this newsgroup would be like should several newbies
> accidentally (or otherwise[*]) obtain a _beta TEST_ version. And having it
> puke on their machines. Oh, yeah, that's a Real Good Idea.

So, are you in favor of protecting "newbies" from themselves?  If so,
isn't that a bit paternalistic?  And isn't paternalism a totally
backwards approach to take if you want to encourage people to be
self-motivated self-starters?

Yes, this indeed does look like a manhood ritual.  :)

> + And I have to agree with you that a lot of this does indeed look like
> + a manhood ritual, although I'm not sure whether I would actually
> + prefer the stone-knife circumcision to the stuff that goes on here.
> 
> So, you allow people to drive your car even if they don't have driver's
> licenses? 

People can be seriously injured or killed if someone loses control of
an automobile.  I suppose that there's an infinitessimal chance that
serious injury or death could also occur if someone messes up the
installation of a beta version of Perl, but I think that there many
other things that are much more likely to be harmful that we should be
concerned about.

> [ ... ]

-- 
 Lloyd Zusman   ljz@asfast.com
 perl -e '$n=170;for($d=2;($d*$d)<=$n;$d+=(1+($d%2))){for($t=0;($n%$d)==0;
 $t++){$n=int($n/$d);}while($t-->0){push(@r,$d);}}if($n>1){push(@r,$n);}
 $x=0;map{$x+=(($_>0)?(1<<log($_-0.5)/log(2.0)+1):1)}@r;print"$x\n"'


------------------------------

Date: Mon, 25 May 1998 09:00:02 +1000
From: Jaime Metcher <metcher@spider.herston.uq.edu.au>
Subject: Re: Perl access to Paradox database
Message-Id: <3568A672.CC2427B2@spider.herston.uq.edu.au>

Microsoft's ODBC drivers purport to understand Paradox files.  On NT you
can use Win32::ODBC to talk to the ODBC drivers, and the ODBC drivers to
talk to the Paradox file.

-- 
Jaime Metcher

Jeff Seaton wrote:
> 
> I have a Paradox database running under Windows that I would liek to
> access with a Perl program to manipulate the data.  I have read many
> messages, FAQ's, and websites dealing with DBI, but have only seen brief
> passing references to Paradox .db files.  I have no control over the
> Paradox format and need to find a way to interface to it.  As a side
> note, I'd love to use Perl running on one of my UNIX machines to access
> the Windows-based database. . .anyone that can provide some help?
> 
> You can respond to this list or to me directly at
> (j.m.seaton@larc.nasa.gov)
> 
> Thanks


------------------------------

Date: Sun, 24 May 1998 18:07:27 -0400
From: Frederic Jeanbart <telenet@citenet.net>
Subject: Perl and Web.pl, Gd Library, dmake question on NT
Message-Id: <35689A1F.2CF9D4E8@citenet.net>

Hi all!

I felt in love with Perl and find it as a must in most cases for
portability reasons, instead of programming ASPs. I am learning a lot
from others's free scripts, but here are 3 questions I couldn't find
answers for:

1- web.pl, $getStdin:
---------------------
I have seen several scripts referencing to web.pl:
require 'web.pl'
This file isn't bundled with Gurusamy Sarathy's Perl 5.004_2 port to
Win32 (WinNT), and I am not able to find it anywhere on CPAN. Anyone
knows where I can get it? I suppose it contains CGI calls, stdin and
stdout routines, like $getStdin.

1- libraries, modules:
----------------------
I am not able to install some modules. One is the GD ver. 1.18 interface
to Boutel's gd library, for making GIFs "on the fly".
After "Perl Makefile.PL", which seems ok (makefiles for
libgd and for GD), "dmake.exe" returns errors.
Anyone with a clue?
Here is the dmake output:
***SNIP******************************************************
mkdir blib
mkdir blib\lib
cp GD.pm blib\lib\GD.pm
AutoSplitting GD (blib\lib\auto/GD)
cp qd.pl blib\lib\qd.pl
DEFINE=''; export DEFINE INC; \
        cd libgd && d:\perl\bin\dmake.exe -S  all DEFINE=
The name specified is not recognized as an
internal or external command, operable program or batch file.
dmake.exe: Error code 1, while making 'libgd/libgd.lib'
***SNIP******************************************************

2- dmake.exe question
----------------------
Every time I se install instructions for modules or libraries, to the
"make.exe" program, even for modules geared towards Win32 platforms.
With Gurusamy Sarathy's Perl 5.004_2 port to Win32, supposed to be
standard Perl, there is a dmake.exe which I use instead. But am I
missing something, since there is no reference to that make application
anywhere?

Thanks in advance for your enlightenment!

Frederic
telenet@citenet.net


------------------------------

Date: 25 May 98 10:26:08 -1000
From: "Andrew Dunbar" <andrew@nospam.gpsoft.com.au>
Subject: Perl on Amiga
Message-Id: <35694740.MD-0.198.andrew@nospam.gpsoft.com.au>

Is there anybody here who is rather familiar with using Perl
on an Amiga?  I have finally gotten around to teaching myself
some Perl but I'm having a lot of trouble from square one.
I have perl5.003 and I'm trying to use the Parse::RecDescent
module just released.  I'm getting loads of errors trying to
install this and there is more manual than I can wade through
right now.

If anybody has already progressed past this learning curve
please email me.

--
Andrew Dunbar
GP Software
andrew@gpsoft.com.au

- I'd rather be in Mexico but at least I have my Amiga here -



------------------------------

Date: 25 May 1998 01:09:14 GMT
From: lqian@regulus.csl.uiuc.edu (Leiming Qian)
Subject: Re: Perl Win95 Question
Message-Id: <slrn6mhh65.110.lqian@regulus.csl.uiuc.edu>

On Sun, 24 May 1998 22:16:14 GMT, Jim Michael <genepool@netcom.com> wrote:
>Leiming Qian (lqian@arcturus.csl.uiuc.edu) wrote:
>: Hello, I have installed Perl for Win32 in my windows machine. I have a
>: question here: how I can tweak Win95's registry to make it recognize Perl's
>: script file *.pl to be executable file and automatically run it using Perl,
>: so I can run whatever.pl in the command line instead of "perl whatever.pl"
>: every time? I know it's doable since ActiveState's perl installer seems to
>: be able to do that, but I can't figure out which key to modify from its
>: perl-install.bat file (I am using other ports of Perl).
>
>If you're really really sure you want to do this (I prefer to associate
>.pl with PFE in case I have to edit the file on a wintel box), find a .pl
>file in the exploder, select it, then shift+right mouse, select Open With,
>go find the perl.exe file, select it and click open. Then click the option
>to always open with that application. Note that this is a Win95 config
>question, not a perl question. HTH. 

No, that's file association, it doesn't really make files with *.pl
extension become executable commands, ie, "whatever.pl" still won't work
(although 'start whatever.pl" will work)

yours
Leiming

-- 
Leiming Qian: lqian@uiuc.edu             | Second Year Research Assistant
Digital Signal Processing Group          | Under Professor Douglas. L. Jones
University of Illinois, Urbana-Champaign | VIM lover, Webmania, PC expert!
-----------------------------------------------------------------------------
If you think that education is expensive, you ought to try ignorance.
-----------------------------------------------------------------------------


------------------------------

Date: Mon, 25 May 1998 01:17:20 GMT
From: sowmaster@juicepigs.com (Bob Trieger)
Subject: Re: Perl Win95 Question
Message-Id: <6kagte$gch$2@ligarius.ultra.net>

[ posted and mailed ]

lqian@uiuc.edu wrote:
-> On Sun, 24 May 1998 22:16:14 GMT, Jim Michael <genepool@netcom.com> wrote:
-> >If you're really really sure you want to do this (I prefer to associate
-> >.pl with PFE in case I have to edit the file on a wintel box), find a .pl
-> >file in the exploder, select it, then shift+right mouse, select Open With,
-> >go find the perl.exe file, select it and click open. Then click the option
-> >to always open with that application. Note that this is a Win95 config
-> >question, not a perl question. HTH. 
-> 
-> No, that's file association, it doesn't really make files with *.pl
-> extension become executable commands, ie, "whatever.pl" still won't work
-> (although 'start whatever.pl" will work)

The easiest ways to do it is to just write a one line .bat file or make it 
clickable with a shortcut to "perl yourscript.pl"

Bob Trieger
sowmaster@juicepigs.com
"Godzilla did not suck!"


------------------------------

Date: 24 May 1998 23:02:29 GMT
From: cberry@cinenet.net (Craig Berry)
Subject: Re: Perl/Wall lingo question
Message-Id: <6ka8u5$sj$1@marina.cinenet.net>

Jaime Metcher (metcher@spider.herston.uq.edu.au) wrote:
: The engineer says:  "Don't bother about your fancy proofs - we can see
: empirically for all useful cases that odd numbers are prime.  For
: example, 1 is prime, 3 is prime, 5 is prime and 7 is prime".

Actually, the way I heard the engineer part told is even funnier...he says
"1 is prime, 3 is prime, 5 is prime, 7 is prime, 9 is prime, 11 is
prime..." :)

(And let's not start on why 1 *isn't* prime.)

---------------------------------------------------------------------
   |   Craig Berry - cberry@cinenet.net
 --*--    Home Page: http://www.cinenet.net/users/cberry/home.html
   |      Member of The HTML Writers Guild: http://www.hwg.org/   
       "Every man and every woman is a star."


------------------------------

Date: 24 May 1998 19:01:01 -0500
From: Jonathan Feinberg <jdf@pobox.com>
Subject: Re: Problem with Crypt command. Passwords don't match.
Message-Id: <7m3bb4n6.fsf@mailhost.panix.com>

bf14@prism.gatech.edu (Brian Franklin) writes:

> I ran into a UNIX guru friend and he gave me a solution.  All it
> needed was
> 
> ($temp_var) = @_;

Ah, cargo-cult programming.

-- 
Jonathan Feinberg   jdf@pobox.com   Sunny Brooklyn, NY
http://pobox.com/~jdf/


------------------------------

Date: 24 May 1998 22:23:48 GMT
From: danny@lennon.postino.com (Danny Aldham)
Subject: Re: Problem with Crypt command. Passwords don't match.
Message-Id: <6ka6lk$2mi$1@lennon.postino.com>

X-Newsreader: TIN [version 1.2 PL2]

Brian Franklin (bf14@prism.gatech.edu) wrote:

: sub encrypt_it
: {
: $temp_var = @_;
: @chars = (a..z);
: $salt = $chars[1] . $chars[2];
: return crypt($temp_var,$salt);
: }

Put in a print $temp_var to check what you are encrypting. 
Then try changing $temp_var = @_  to  $temp_var = shift(@_) .

--
Danny Aldham             SCO Ace, MCSE, JAPH, DAD 
Sun Microsystems & Scott McNeely support the government attack
on the computer industry & free enterprise. Still like Sun?


------------------------------

Date: Sun, 24 May 1998 20:28:48 -0500
From: Daniel Warren <dwarren@starnetinc.com>
Subject: Return via call-by-value in OLE function
Message-Id: <3568C94F.C41B174C@starnetinc.com>

How can I use an OLE function that returns values via references or
pointers in the arguments?  I am trying to determing the bounding box
for some graphics in a Visio document.  The Visio selection class has a
method that returns the bounding box:

$VisioDoc->ThisDocument->Selection->BoundingBox($btype, $b, $l, $t, $r);

Where b,l,t, and r are the (bottom, left) and (top, right) coordinates
of the box. $btype is an integer constant indicating the type of box.

How do I get these values?  I've tried the obvious (for a c++
programmer) of using references (via the \ operator.)  No joy. As far as
I can tell, Perl doesn't use this mechanism for returning results from
subroutines.  Is there any workaround?



------------------------------

Date: Fri, 22 May 1998 17:20:39 -0400
From: "Atsushi Amemiya" <a.amemiya@asahi-jc.com>
Subject: Sending local files to the server via form on a web page.
Message-Id: <6k4qhi$j0o@netaxs.com>

Could anyone give me some idea how this works?
What kind of CGI program should be on the server to receive files from
users?
Could I write that in Perl?

Atsushi




------------------------------

Date: 8 Mar 97 21:33:47 GMT (Last modified)
From: Perl-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin) 
Subject: Digest Administrivia (Last modified: 8 Mar 97)
Message-Id: <null>


Administrivia:

The Perl-Users Digest is a retransmission of the USENET newsgroup
comp.lang.perl.misc.  For subscription or unsubscription requests, send
the single line:

	subscribe perl-users
or:
	unsubscribe perl-users

to almanac@ruby.oce.orst.edu.  

To submit articles to comp.lang.perl.misc (and this Digest), send your
article to perl-users@ruby.oce.orst.edu.

To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.

To request back copies (available for a week or so), send your request
to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
where x is the volume number and y is the issue number.

The Meta-FAQ, an article containing information about the FAQ, is
available by requesting "send perl-users meta-faq". The real FAQ, as it
appeared last in the newsgroup, can be retrieved with the request "send
perl-users FAQ". Due to their sizes, neither the Meta-FAQ nor the FAQ
are included in the digest.

The "mini-FAQ", which is an updated version of the Meta-FAQ, is
available by requesting "send perl-users mini-faq". It appears twice
weekly in the group, but is not distributed in the digest.

For other requests pertaining to the digest, send mail to
perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
sending perl questions to the -request address, I don't have time to
answer them even if I did know the answer.


------------------------------
End of Perl-Users Digest V8 Issue 2711
**************************************

home help back first fref pref prev next nref lref last post