Appropriate Tools for "enhancing" / "fixing" / creating Linux GPLed code

Appropriate Tools for "enhancing" / "fixing" / creating Linux GPLed code

Post by John McKow » Tue, 26 Jan 1999 04:00:00



I have a general question. I've used GCC like the rest of the known universe
<grin>. I just ordered Cygnus' Source-Navigator and GNUPpro Linux Combo. I
plan to start using them (of course, why else buy them?). I have, in the
past, made minor a fix to a GPL'ed package. I gave the changes back to the
author, who was kind enough to incorporate the fix. I have another problem
that I plan to work on. However, I plan to use the Cygnus package simply
because it looks like it will be easier/faster. I realize that if I do this,
I really need to make sure that the changes work with the standard GCC
compiler. Now, finally, the question. If, by some miracle, I ever create a
piece of software that I think might be worthy to be distributed and GPLed,
would it be OK to simply use the Cygnus software (which might result in
others not being able to compile the code), or should I really make sure
that GCC will correctly compile it? I.e. will the majority of people say
something like "What an IDIOT - I can't make enhancements because he used a
non-GCC compiler!" This is very theoretical since I really doubt that I'll
ever code some original that would be of very much interest to others. Would
this apply to a freely available compiler such as EGCS?

I guess this is a sort-of etiquette question.

 
 
 

Appropriate Tools for "enhancing" / "fixing" / creating Linux GPLed code

Post by Paul Hughe » Wed, 27 Jan 1999 04:00:00


: I have a general question. I've used GCC like the rest of the known universe
: <grin>. I just ordered Cygnus' Source-Navigator and GNUPpro Linux Combo. I
: plan to start using them (of course, why else buy them?). I have, in the
: past, made minor a fix to a GPL'ed package. I gave the changes back to the
: author, who was kind enough to incorporate the fix. I have another problem
: that I plan to work on. However, I plan to use the Cygnus package simply
: because it looks like it will be easier/faster. I realize that if I do this,
: I really need to make sure that the changes work with the standard GCC
: compiler. Now, finally, the question. If, by some miracle, I ever create a
: piece of software that I think might be worthy to be distributed and GPLed,
: would it be OK to simply use the Cygnus software (which might result in
: others not being able to compile the code), or should I really make sure
: that GCC will correctly compile it? I.e. will the majority of people say
: something like "What an IDIOT - I can't make enhancements because he used a
: non-GCC compiler!" This is very theoretical since I really doubt that I'll
: ever code some original that would be of very much interest to others. Would
: this apply to a freely available compiler such as EGCS?

: I guess this is a sort-of etiquette question.

It really depends on what you see as the market for your software and
how hard you are willing to work to make it easier for other people
to use and modify your code.  If you work within the standard ANSI
C language and and other standard facilities (X, etc), you can usually
write code that is portable to a wide variety of different compilers,
Unix versions, and computers.  For example, I develop image processing
software under gcc/Intel/Linux, test it there, then copy to a Solaris
system and fix any compilation errors and bugs there.  It's somewhat
more work but it means that the same code should compile and run on
any Linux or Sparc system, which means that more people have the
opportunity to benefit from my code, and send useful improvements
back to me.  I believe also that the discipline of writing for two
different architectures improves the quality of my software; what
one compiler overlooks, the other often catches.

So it's your choice.  Developing for multiple platforms is more work
(especially researching what's portable and what isn't) but provides
a wider audience for your code and--in my experience--better code.
I know what my choice is--if it's serious code, I make it portable.

Paul Hughett

 
 
 

Appropriate Tools for "enhancing" / "fixing" / creating Linux GPLed code

Post by Michael Talbot-Wilso » Wed, 27 Jan 1999 04:00:00



> compiler. Now, finally, the question. If, by some miracle, I ever create a
> piece of software that I think might be worthy to be distributed and GPLed,
> would it be OK to simply use the Cygnus software (which might result in
> others not being able to compile the code), or should I really make sure
> that GCC will correctly compile it? I.e. will the majority of people say
> something like "What an IDIOT - I can't make enhancements because he used a
> non-GCC compiler!" This is very theoretical since I really doubt that I'll

You won't prevent them from making enhancements, since by hypothesis
you are distributing the source.  If they can compile it they can
compile it with their enhancements.

Quote:> ever code some original that would be of very much interest to others. Would
> this apply to a freely available compiler such as EGCS?

> I guess this is a sort-of etiquette question.

The only issue that I can see is that of portability.  You would
look dumb if you wrote something in the Unix world that would only
run on one variety of Unix, and you would be striking your blow for
the fragmentation and ultimate demise of Unix rather than the
contrary.

Take GNU 'hello' (a little exercise in writing portable software)
as the initial prototype of your development and you will be okay.

IMHO.

 
 
 

Appropriate Tools for "enhancing" / "fixing" / creating Linux GPLed code

Post by James Youngma » Wed, 27 Jan 1999 04:00:00



> I have a general question. I've used GCC like the rest of the known universe
> <grin>. I just ordered Cygnus' Source-Navigator and GNUPpro Linux Combo. I
> plan to start using them (of course, why else buy them?). I have, in the
> past, made minor a fix to a GPL'ed package. I gave the changes back to the
> author, who was kind enough to incorporate the fix. I have another problem
> that I plan to work on. However, I plan to use the Cygnus package simply
> because it looks like it will be easier/faster. I realize that if I do this,
> I really need to make sure that the changes work with the standard GCC
> compiler. Now, finally, the question. If, by some miracle, I ever create a
> piece of software that I think might be worthy to be distributed and GPLed,
> would it be OK to simply use the Cygnus software (which might result in
> others not being able to compile the code), or should I really make sure
> that GCC will correctly compile it?

The Cygnus compiler *is* GCC.  If by mistake you use features not
present in the current stable GCC release, just tell people to use
EGCS.

Quote:> I.e. will the majority of people say something like "What an IDIOT -
> I can't make enhancements because he used a non-GCC compiler!" This
> is very theoretical since I really doubt that I'll ever code some
> original that would be of very much interest to others. Would this
> apply to a freely available compiler such as EGCS?

> I guess this is a sort-of etiquette question.

Go ahead and use the GNUPro toolkit.  I doubt anyone else will notice
much difference (if you use standard makefiles, or Automake).

--

 
 
 

Appropriate Tools for "enhancing" / "fixing" / creating Linux GPLed code

Post by Christopher Brow » Thu, 28 Jan 1999 04:00:00



>I have a general question. I've used GCC like the rest of the known universe
><grin>. I just ordered Cygnus' Source-Navigator and GNUPpro Linux Combo. I
>plan to start using them (of course, why else buy them?).
>I have, in the past, made minor a fix to a GPL'ed package. I gave the
>changes back to the author, who was kind enough to incorporate the fix.

And a hearty "good for you" on that.

Quote:>I have another problem
>that I plan to work on. However, I plan to use the Cygnus package simply
>because it looks like it will be easier/faster. I realize that if I do this,
>I really need to make sure that the changes work with the standard GCC
>compiler. Now, finally, the question. If, by some miracle, I ever create a
>piece of software that I think might be worthy to be distributed and GPLed,
>would it be OK to simply use the Cygnus software (which might result in
>others not being able to compile the code), or should I really make sure
>that GCC will correctly compile it? I.e. will the majority of people say
>something like "What an IDIOT - I can't make enhancements because he used a
>non-GCC compiler!" This is very theoretical since I really doubt that I'll
>ever code some original that would be of very much interest to others. Would
>this apply to a freely available compiler such as EGCS?

>I guess this is a sort-of etiquette question.

Point #1.  If you GPL the resulting code, you have thereby provided
design and implementation of whatever system you have created.  That's a
goodly amount to have contributed, and anyone that gripes about
"political incorrectness" will be behaving like a jerk.  It's their
problem, not yours.

Point #2.  C and C++ have standards that are neither defined by Cygnus
nor the FSF.

As a result, if code you produce with "Cygnus Pro GCC" doesn't work with
others' EGCS compilers, this suggests that it is fairly likely that
either:
a) Your code is nonportable, in which case you apparently have a bug to
fix,
b) There's a bug in EGCS, which needs to be fixed, or
c) There's a bug in Cygnus' version of GCC, which needs to be fixed.


program, you jerk!"  (I wouldn't expect you to react kindly to that.)

b) and c) are unlikely to be major problems, as differences in behaviour
between compilers based on the same basic GCC code base will be pretty
limited, and will *definitely* be treated as bugs.

Point #3.  Cygnus is involved with development efforts both on EGCS and
their own tools.  

This bodes well for interoperability, particularly since as they use
GPLed code assigned to the FSF within their compilers, they have to GPL
the entirety, which means that any extensions will be available to the
EGCS project.

Point #4.  What is it that you actually get with "GNU Pro"?

The major thing that I *expect* you get with the "Pro" package is some
external tools that make it easier to *write* the code, but that do not
substantially affect how it compiles.

The Source Navigator may make it easier to write your programs; you'll
still wind up with source code that should be able to be compiled using
GCC/EGCS on other peoples' systems.

In short, I don't think there are likely to be any significant technical
problems out of using Cygnus' tool set rather than a "stock" GCC/EGCS.
And if someone decides to be offended because you pay Cygnus something,
that's their problem, not yours.  Contrary to popular belief, free
software isn't free of cost.

--
Windows NT: The Mister Hankey of operating systems