Re: 25+2 packages with (Glade) generated C source files without the source

2008-09-07 Thread Ian Jackson
Others have explained why this is not a critical bug in this specific
case.  (Although as an aside it seems quite incomprehensible to me
that these projects, and Gnome in general, have effectively thrown
away the source!)

But there was one misunderstanding here which I think is important to
correct:

Manterola writes (Re: 25+2 packages with (Glade) generated C source files 
without the source):
 On Sat, Aug 30, 2008 at 10:17 PM, Sami Liedes [EMAIL PROTECTED] wrote:
  [ stuff ]
 
 No.  .c files are still source code.

This is not correct.  `Source code' means (in the words of the GPL)
the preferred form for modification.  In many programs the .c code is
automatically generated from some other input in the source tree.
Compilers for some languages even work by translating the source code
to C and feeding it to a C compiler.

The output from code generators and language translators is not
source, even though it may be in C (or some other language that humans
sometimes write).  So Sami was right to suspect that there was a
serious problem here and to investigate.

Whether something is source or not cannot be determined simply by
looking at which language it is written in.  The question is: if we
wanted to edit this, which file would we need to change ?

If someone somewhere still has the input file, and is generating new
versions of the output, then the input file is still the preferred
form for modification.  If the input file is completely lost, or the
output file has been directly edited to the point where the input file
is no longer relevant, then the output file has become the source
code.

I would say that _at the time when these projects were first shipped_
in this state, it _was_ a clear violation (both of our principles and
of the GPL) to do so.  If we had noticed at the time that the source
was missing, and insisted that it was provided and that the package
should be built from it, the source would not now be lost.

 We might ask authors to include their .glade files, IF they still have
 them (if they don't, then the .c files have already become the actual
 source code).

If the .glade files can still be found, and the glade2 translator
resurrected and plumbed back into the build system of these programs,
we would be in a much better position.  As Sami says, many of these
programs are effectively immutable because editing the autogenerated C
is impractical.

But that's a lot of work.  I'm not sure it can be done sensibly in
time for lenny.  If such changes _can_ be made in time then they're
probably pretty safe.  After all the output from glade2's code
generator can be compared with the current manually-edited files.  I'm
not sure if the RMs would agree :-).

Ian.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: 25+2 packages with (Glade) generated C source files without the source

2008-09-07 Thread Lars Wirzenius
su, 2008-09-07 kello 19:29 +0100, Ian Jackson kirjoitti:
 I would say that _at the time when these projects were first shipped_
 in this state, it _was_ a clear violation (both of our principles and
 of the GPL) to do so.

As far as I understand, when most of those projects first shipped, the C
files really were the source. It is true that the C files were initially
generated by glade, but they were then subsequently modified by hand.
Having the original .glade file would mean that you could re-generate
the C sources, but then all your manual modifications to them were lost.
As a result, the hand-modified C files were the preferred form of
modification. Indeed, some people did not ever save the .glade file,
they just used glade to generate a skeleton application.

(This has been said already, but bears repeating: All right-thinking
developers switched to not generating code from glade, but load
the .glade file at application run time instead, originally using
libglade, but that's now been incorporated into gtk proper.)



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: 25+2 packages with (Glade) generated C source files without the source

2008-08-31 Thread Josselin Mouette
Le dimanche 31 août 2008 à 04:17 +0300, Sami Liedes a écrit :
 I went through some of these and checked them by hand, and generally
 couldn't find the glade project anywhere in the source tarball (it
 might be in the diff, I didn't check for that - would that BTW be OK,
 to have source code in diff only?). The only questionable case I found
 by this sampling is dia, where the file is generated by Glade and
 then hand-coded to make GNOME optional and add the underline for
 accelerated buttons.

I’m pretty sure many of the list are in similar cases. Now loading the
UI directly into the application is the standard, but not so long ago
people generated template code with glade and then edited it by hand.
The .glade file was removed simply because it has become irrelevant.

Cheers,
-- 
 .''`.
: :' :  We are debian.org. Lower your prices, surrender your code.
`. `'   We will add your hardware and software distinctiveness to
  `-our own. Resistance is futile.


signature.asc
Description: Ceci est une partie de message	numériquement signée


Re: 25+2 packages with (Glade) generated C source files without the source

2008-08-31 Thread Neil Williams
On Sat, 2008-08-30 at 23:19 -0300, Margarita Manterola wrote:
 On Sat, Aug 30, 2008 at 10:17 PM, Sami Liedes [EMAIL PROTECTED] wrote:
  The only questionable case I found
  by this sampling is dia, where the file is generated by Glade and
  then hand-coded to make GNOME optional and add the underline for
  accelerated buttons.
 
 And what's there to question, then?
 
 This is exactly the case I was talking about.  Some people might use
 glade to generate a .c as a starting point, and then continue editing
 the file (or not, but just keep the .c file, once it's been
 generated).  This is perfectly fine, and we do NOT need the .glade
 files used.

(Especially when glade-3 does not actually support generating any C code
or updating the C source code files output by glade-2.)

Any bugs filed so far should be closed forthwith. The comment is old, it
relates to a function of Glade that was removed by Glade upstream and
whether the .glade file is distributed or not, the C can no longer be
generated with the current version of glade.

All this process has really shown is that upstream teams are commonly
lazy about removing old comments. Yawn.

Sorry, Sami, but this was a waste of effort.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/




signature.asc
Description: This is a digitally signed message part


Re: 25+2 packages with (Glade) generated C source files without the source

2008-08-31 Thread Sami Liedes
On Sun, Aug 31, 2008 at 09:12:34AM +0200, Josselin Mouette wrote:
 I’m pretty sure many of the list are in similar cases. Now loading the
 UI directly into the application is the standard, but not so long ago
 people generated template code with glade and then edited it by hand.
 The .glade file was removed simply because it has become irrelevant.

Ok, my bad then. I admit I'm not too familiar with glade, although I
did know that the newest glade does not generate source code (but what
argument is that, this code was obviously generated with glade, the
existence of the newer version wouldn't magically make this the
preferred form of modification, would it!?).

Although I do wonder, since this seems to mean that the interfaces are
(or at least seem to me) quite immutable. For example, take a look at

   http://www.hut.fi/~sliedes/interface.c

which is from the package lopster.

It has a number of functions like create_window() and
create_options_win() which still at least look quite repulsive for any
attempts to make any real or substantive edits to the interface.

For example, the variable declarations in those functions:
create_window() has 541 local variables named like pixmap57, hbox419,
label547, hseparator49, frame 384. create_options_win() has 496. The
code (4710 lines in case of create_window()) doesn't look much more
editable either.

But I do trust you when you say that the do not edit note is
obsolete, I just wonder since after a cursory inspection this code
definitely doesn't look like anything I would want to touch to edit a
complex UI :) Of course if they are edited anyway, that might make
them the preferred form of modification.

Thanks for clarifying that, anyway, and sorry for the noise.

Sami


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: 25+2 packages with (Glade) generated C source files without the source

2008-08-31 Thread Neil Williams
On Sun, 2008-08-31 at 15:08 +0300, Sami Liedes wrote:
 On Sun, Aug 31, 2008 at 09:12:34AM +0200, Josselin Mouette wrote:
  I’m pretty sure many of the list are in similar cases. Now loading the
  UI directly into the application is the standard, but not so long ago
  people generated template code with glade and then edited it by hand.
  The .glade file was removed simply because it has become irrelevant.
 
 Ok, my bad then. I admit I'm not too familiar with glade, although I
 did know that the newest glade does not generate source code (but what
 argument is that, this code was obviously generated with glade, the
 existence of the newer version wouldn't magically make this the
 preferred form of modification, would it!?).

Of course it does! Once the functionality is dropped, there is no way to
continue working on the project without editing the C files. Developers
cannot continue using the old version of glade (it doesn't support some
of the stuff that you can do with glade).

You are confusing the two elements of Glade (v2) and the main
functionality retained in Glade v3.

Glade is about creating an interface (as an XML file, not C). Glade v2
allowed that interface to be easily converted into C code but could not
cope with any manual alterations to the C code - once you started
editing support.c, interface.c, callbacks.c etc., you were on your own.
(Trust me, it was nearly always better if you did edit the C files too.)
If you tried to re-generate, you lost all your own changes. Not good.

Gladev3 takes a more sensible approach - you create whatever C files you
need (no longer confined to particular file names) and load the Glade
XML file with a library call. Or, if you want an interface in C or you
don't want to depend on libglade, use Glade to get an idea of what kind
of interface might work and then code that in C yourself.

I didn't like this at first - it seemed to add more burden to the C
programming - but I view it differently now. The generated code is quite
awful to review later and makes project management a lot harder in the
long term. Short term convenience causing long term logjam.

 Although I do wonder, since this seems to mean that the interfaces are
 (or at least seem to me) quite immutable.

Sorry, that is just tosh. If you want to load the glade file via Glade,
you keep the XML, depend on libglade and call libglade at runtime. If
you designed the interface in Gladev2, you have the option to use the
existing C files to continue improving the interface and you don't have
to package the Glade file or depend on libglade.

Yes, it might look like more work than editing stuff in the GUI or in
the XML but in the long term it is the only sane option. To the point
that I've virtually stopped working on any other projects that tried to
generate C code, after working through the Glade migration.

There are downsides to generating C code - bloat for one.

 It has a number of functions like create_window() and
 create_options_win() which still at least look quite repulsive for any
 attempts to make any real or substantive edits to the interface.

WTF? It's actually fairly good code in most cases. One of the ideas
behind generating code is that you gain from the experience of others
and avoid common pitfalls. The limitation is that the generated C code
is too generalised which can be wasteful.

 For example, the variable declarations in those functions:
 create_window() has 541 local variables named like pixmap57, hbox419,
 label547, hseparator49, frame 384. create_options_win() has 496. The
 code (4710 lines in case of create_window()) doesn't look much more
 editable either.

That is the choice of the developers - if the developer is lazy and
designs in glade rather quickly, the number suffixes remain but glade
does/did allow developers to choose more sensible names, if the
developer takes the time to edit the properties of the widget.

 But I do trust you when you say that the do not edit note is
 obsolete, I just wonder since after a cursory inspection this code
 definitely doesn't look like anything I would want to touch to edit a
 complex UI :) Of course if they are edited anyway, that might make
 them the preferred form of modification.

That is something for upstream to review and, from personal experience,
I can say that, at some point, upstream will be *forced* to review all
that code and redesign it - when we get Gtk3 if not before.

Projects where the original Glade design was lazy or rushed will find it
hard to port the old generated C code but that is their choice and their
problem. Like it or not, those rushed C files are the only modifiable
form of the source code that are available for usage. Either edit those
files or remove them and replace the entire interface with one entirely
done in glade and then depend on libglade with no generated C code.

It is also possible for projects using libglade to still define some
widgets or windows in various C files but that is probably not 

Re: 25+2 packages with (Glade) generated C source files without the source

2008-08-31 Thread Neil Williams
On Sun, 2008-08-31 at 15:27 +0200, Josselin Mouette wrote:
 Le dimanche 31 août 2008 à 14:13 +0100, Neil Williams a écrit :
  Sorry, that is just tosh. If you want to load the glade file via Glade,
  you keep the XML, depend on libglade and call libglade at runtime.
 
 You don’t need libglade anymore, GTK+ has integrated the functionality
 since 2.12.

Even better - thanks for that.

Is there likely to be a release goal for Lenny+1 to drop libglade
completely? I find 290 packages depending on libglade2-0.

http://library.gnome.org/devel/gtk/2.11/gtk-migrating-GtkBuilder.html

I'll be using that for one my own upstream projects.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/




signature.asc
Description: This is a digitally signed message part


Re: 25+2 packages with (Glade) generated C source files without the source

2008-08-31 Thread Sami Liedes
On Sun, Aug 31, 2008 at 02:13:21PM +0100, Neil Williams wrote:
 Of course it does! Once the functionality is dropped, there is no way to
 continue working on the project without editing the C files. Developers
 cannot continue using the old version of glade (it doesn't support some
 of the stuff that you can do with glade).
[...]

Ok, thanks for the explanation, I now see the situation much more
clearly.

Heh, I'm starting to see why lawyers are generally not liked (or at
least that's the cliché), especially when they eventually turn out to
be mistaken, although the response to this issue has been quite nice
and polite this time, and specifically I don't mean this as a
criticism to any of you.

I guess from a maintainer's POV it's quite easy to see efforts like
this as trying to cripple the software or distribution they maintain,
while I view it more like I want to help Debian maintain their
self-chosen commitment to 100% freedom, since freedom is one of the
issues close to my heart. (If you search for bugs reported by me, I
think you'll see that not all of them are nagging for license issues
:)

Thanks for your efforts, all of you!

Sami


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: 25+2 packages with (Glade) generated C source files without the source

2008-08-31 Thread Josselin Mouette
Le dimanche 31 août 2008 à 14:13 +0100, Neil Williams a écrit :
 Sorry, that is just tosh. If you want to load the glade file via Glade,
 you keep the XML, depend on libglade and call libglade at runtime.

You don’t need libglade anymore, GTK+ has integrated the functionality
since 2.12.

-- 
 .''`.
: :' :  We are debian.org. Lower your prices, surrender your code.
`. `'   We will add your hardware and software distinctiveness to
  `-our own. Resistance is futile.


signature.asc
Description: Ceci est une partie de message	numériquement signée


Re: 25+2 packages with (Glade) generated C source files without the source

2008-08-31 Thread Changwoo Ryu
2008-08-31 (일), 14:56 +0100, Neil Williams:
 On Sun, 2008-08-31 at 15:27 +0200, Josselin Mouette wrote:
  Le dimanche 31 août 2008 à 14:13 +0100, Neil Williams a écrit :
   Sorry, that is just tosh. If you want to load the glade file via Glade,
   you keep the XML, depend on libglade and call libglade at runtime.
  
  You don’t need libglade anymore, GTK+ has integrated the functionality
  since 2.12.
 
 Even better - thanks for that.
 
 Is there likely to be a release goal for Lenny+1 to drop libglade
 completely? I find 290 packages depending on libglade2-0.

I don't think so. That work is beyond the scope of Debian packaging or
distribution. Migration needs serious GTK+ programming skill. Even
upstream GNOME has not decided the migration as a release goal for
several releases.

http://live.gnome.org/GnomeGoals/RemoveLibGladeUseGtkBuilder


-- 
Changwoo Ryu [EMAIL PROTECTED]


signature.asc
Description: This is a digitally signed message part


25+2 packages with (Glade) generated C source files without the source

2008-08-30 Thread Sami Liedes
[Note that I'm not subscribed to either d-d or d-legal so if you want
to ask me something, the quickest way is to Cc: me]

Hi,

I grepped the source tarballs in Lenny (testing) main section for the
note DO NOT EDIT THIS FILE - it is generated by Glade. which
indicates the file is generated using the Glade UI editor. Then I
checked if these packages have any *.glade* files, which would be the
Glade projects, i.e. the source code (at least in the GPL sense,
preferred form of modification) for these. For those of these
packages for which this is not a false alarm, I believe this would
fail DFSG #2, and for those being licensed under GPL, it would
probably make them non-distributable.

I went through some of these and checked them by hand, and generally
couldn't find the glade project anywhere in the source tarball (it
might be in the diff, I didn't check for that - would that BTW be OK,
to have source code in diff only?). The only questionable case I found
by this sampling is dia, where the file is generated by Glade and
then hand-coded to make GNOME optional and add the underline for
accelerated buttons.

I haven't filed bugs for any of these, save for tangogps which was the
first case I encountered and after which I got the idea to do this.

In addition to the cases I found in main, the packages easyspice and
gtktrain in contrib seem suspect too (but I didn't take such a close
look).

Here's the list of the 25 packages and the relevant source files:


bygfoot
src/support.c
src/misc2_interface.c
src/interface.c
src/misc2_interface.h
src/support.h
src/options_interface.c
src/options_interface.h
src/misc3_interface.c
src/misc_interface.c
src/interface.h
src/misc3_interface.h
src/misc_interface.h

dia
app/sheets_dialog.c: * DO NOT EDIT THIS FILE - it is generated by Glade and 
then hand-coded
app/sheets_dialog.c- * to make GNOME optional and 
add the underline
app/sheets_dialog.c- * for accelerated buttons.
app/sheets_dialog.h

gcompris
src/boards/gtans_support.h
src/boards/gtans_interface.h

gcrontab
gcrontab-0.8.0/src/support.c
gcrontab-0.8.0/src/interface.c
gcrontab-0.8.0/src/support.h
gcrontab-0.8.0/src/interface.h
src/support.c
src/interface.c
src/support.h
src/interface.h
*** NOTE: yes, I did report also the bug that the source is there twice

ggz-gnome-client
motd-editor/interface.c
motd-editor/interface.h
src/support.c
src/profilesi.h
src/support.h
src/msgboxi.c
src/profilesi.c
src/interface.h
src/msgboxi.h

ggz-gtk-games
chess/support.c
chess/support.h
combat/support.c
combat/support.h
dots/support.c
dots/support.h
hastings/support.c
hastings/support.h
reversi/support.c
reversi/support.h

gnusim8085
src/support.c
src/interface.c
src/support.h
src/interface.h

gpe-contacts
support.c
support.h

gsetroot
src/support.c
src/interface.c
src/support.h
src/interface.h

gtans
interface.c
interface.h
support.c
support.h

gtkpool
gtkpool/support.h
gtkpool/support.cpp

hf
hfterm/src/support.c
hfterm/src/support.h

hoz
hozgtk_i.c
hozgtk_i.h
hozgtk_s.c
hozgtk_s.h

kmd
src/breakview.h
src/breakview.c
src/breaksupport.h
src/breaksupport.c

lopster
src/support.c
src/interface.c
src/support.h
src/interface.h

lxappearance
src/glade-support.c
src/demo-ui.h
src/main-dlg-ui.h
src/demo-ui.c
src/main-dlg-ui.c
src/glade-support.h

netmon-applet
interface.c
interface.h
support.c
support.h

prismstumbler
include/support.h
src/support.c

psemu-video-x11
src/support.c
src/interface.c
src/support.h
src/interface.h

tangogps
src/support.h
src/interface.h

teg
client/gui-gnome/interface.h

timemachine
src/support.c
src/support.h

tleenx2
src/support.c
src/interface.c
src/support.h
src/interface.h

trousers
src/tspi/gtk/support.c
src/tspi/gtk/interface.c
src/tspi/gtk/support.h
src/tspi/gtk/interface.h

xwota
src/support.c
src/manual.c
src/query.h
src/station_info.h
src/private_messages.h
src/private_messages.c
src/support.h
src/default_preferences.c
src/xwota_main.c
src/xwota_main.h
src/about.c
src/private_messages_settings.h
src/station_info.c
src/manual.h
src/query.c
src/about.h
src/default_preferences.h
src/private_messages_settings.c


And possibly in contrib:

easyspice
gtktrain

Sami


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: 25+2 packages with (Glade) generated C source files without the source

2008-08-30 Thread Margarita Manterola
On Sat, Aug 30, 2008 at 10:17 PM, Sami Liedes [EMAIL PROTECTED] wrote:

 I grepped the source tarballs in Lenny (testing) main section for the
 note DO NOT EDIT THIS FILE - it is generated by Glade. which
 indicates the file is generated using the Glade UI editor. Then I
 checked if these packages have any *.glade* files, which would be the
 Glade projects, i.e. the source code (at least in the GPL sense,
 preferred form of modification) for these. For those of these
 packages for which this is not a false alarm, I believe this would
 fail DFSG #2, and for those being licensed under GPL, it would
 probably make them non-distributable.

No.  .c files are still source code.  And even taking into account the
DO NOT EDIT THIS FILE comment, it doesn't clearly mean that the
author of the program necessarily has not edited it.

We might ask authors to include their .glade files, IF they still have
them (if they don't, then the .c files have already become the actual
source code).  But in any case it's not a violation of DFSG #2, since
.c files are still source code.  Bugs like these would be wishlist, at
most.

The preferred form of modification for this case is quite relative.
Some people do prefer to edit .c files instead of .glade files,
because you don't need a special tool for that.

 The only questionable case I found
 by this sampling is dia, where the file is generated by Glade and
 then hand-coded to make GNOME optional and add the underline for
 accelerated buttons.

And what's there to question, then?

This is exactly the case I was talking about.  Some people might use
glade to generate a .c as a starting point, and then continue editing
the file (or not, but just keep the .c file, once it's been
generated).  This is perfectly fine, and we do NOT need the .glade
files used.

-- 
Besos,
Marga


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]