[wxPython] wxPython on Linux as a single package?

On Windows, wxPython has a binary installer that includes the wxMSW DLL.
Users only need to do one download and don't have to be concerned with wxMSW
or keeping versions of wxMSW and wxPython in sync. On Linux, wxPython has
RPMs and users are required to do multiple downloads and then have
dependency issues and must remember to keep wxGTK and wxPython in sync. In
addition, Linux users have to get the demo and documentation separately, so
that's yet another thing to get out of sync or miss entirely.

Is it not technically possible to make a single wxPython for Linux RPM
installer that includes wxGTK and whatever else is required? Disk space
shouldn't be an issue. Making wxPython install painlessly on Linux will
really help in getting more people to use wxPython on Linux and should cut
down on some of the support questions to the list. My guess is a lot of
people try it, have wxGTK and wxPython out of sync, it doesn't work and they
move on.

I don't see any options on the Linux for "normal" and "hybrid" builds, are
the Linux RPMs always done as hybrid? If so, there needs to be a "normal"
option. Personally, I find the output on the hybrid builds annoying,
cluttering up my console and only run hybrid for testing purposes.

Note that I plan to make the same argument for wxPython-Mac, but will do
that on the wxPython-Mac mailing list.

http://lists.wxwindows.org/mailman/listinfo/wxpython-mac

Thanks,

ka

On Windows, wxPython has a binary installer that includes the wxMSW DLL.
Users only need to do one download and don't have to be concerned with

wxMSW

or keeping versions of wxMSW and wxPython in sync. On Linux, wxPython has
RPMs and users are required to do multiple downloads and then have
dependency issues and must remember to keep wxGTK and wxPython in sync. In
addition, Linux users have to get the demo and documentation separately,

so

that's yet another thing to get out of sync or miss entirely.

Is it not technically possible to make a single wxPython for Linux RPM
installer that includes wxGTK and whatever else is required?

I've thought about it several times, and it certainly is possible, I just
havn't gotten to it. Maybe I'll take a stab at it when building the
packages for 2.3.3. There are a few issues however:

1. gtk+ and glib would not be able to be included because of license issues.
Most linux distros have relativly recent versions of these already, but
there can still be compatibility issues.

2. If a system already has installed the wxGTK RPMs then a combined wxPython
RPM will cause conflicts. Things could get tricky here...

3. Distutils would no longer be able to be able to build the RPM, and the
.spec file will be fairly complex (but managable.)

4. If somebody needs wxPython for multiple versions of Python installed then
the muiltiple RPMs will conflict with each other as they have the wxGTK
parts in common.

5. The trend is towards more modular packages.

I don't see any options on the Linux for "normal" and "hybrid" builds, are
the Linux RPMs always done as hybrid? If so, there needs to be a "normal"
option.

On linus it would either be "release" or "debug" and it is whatever the
wx-config script in the wxGTK-devel package used to build wxPython
specifies, which so far in the RPMs is always release mode. I think the
Debian packages are available in both debug and release though.

The upside of doing the combined RPM is that it would be fairly easy to do
both debug and release binaries.

···

--
Robin Dunn
Software Craftsman
robin@AllDunn.com Java give you jitters?
http://wxPython.org Relax with wxPython!

Okay, I understand all the points below and would have to agree that more
modular, at least on Linux is probably better. I'm not sure that argument
holds for a wxMac version since there aren't any library license issues
there (I hope). So, for Linux what other simplifications might be possible?
Is the fundamental issue the lack of smarts in the RPM installers? Fink on
the Mac seems better about this kind of thing. Would a Python script be able
to make some better guesses about what to download and do it for a user with
some prompting? Since wxPython wouldn't be working yet this would have to be
a command-line script.

ka

···

-----Original Message-----
From: wxpython-users-admin@lists.wxwindows.org
[mailto:wxpython-users-admin@lists.wxwindows.org]On Behalf Of Robin Dunn
Sent: Tuesday, April 16, 2002 5:18 PM
To: wxpython-users@lists.wxwindows.org
Subject: Re: [wxPython] wxPython on Linux as a single package?

> On Windows, wxPython has a binary installer that includes the wxMSW DLL.
> Users only need to do one download and don't have to be concerned with
wxMSW
> or keeping versions of wxMSW and wxPython in sync. On Linux,
wxPython has
> RPMs and users are required to do multiple downloads and then have
> dependency issues and must remember to keep wxGTK and wxPython
in sync. In
> addition, Linux users have to get the demo and documentation separately,
so
> that's yet another thing to get out of sync or miss entirely.
>
> Is it not technically possible to make a single wxPython for Linux RPM
> installer that includes wxGTK and whatever else is required?

I've thought about it several times, and it certainly is possible, I just
havn't gotten to it. Maybe I'll take a stab at it when building the
packages for 2.3.3. There are a few issues however:

1. gtk+ and glib would not be able to be included because of
license issues.
Most linux distros have relativly recent versions of these already, but
there can still be compatibility issues.

2. If a system already has installed the wxGTK RPMs then a
combined wxPython
RPM will cause conflicts. Things could get tricky here...

3. Distutils would no longer be able to be able to build the RPM, and the
.spec file will be fairly complex (but managable.)

4. If somebody needs wxPython for multiple versions of Python
installed then
the muiltiple RPMs will conflict with each other as they have the wxGTK
parts in common.

5. The trend is towards more modular packages.

> I don't see any options on the Linux for "normal" and "hybrid"
builds, are
> the Linux RPMs always done as hybrid? If so, there needs to be
a "normal"
> option.

On linus it would either be "release" or "debug" and it is whatever the
wx-config script in the wxGTK-devel package used to build wxPython
specifies, which so far in the RPMs is always release mode. I think the
Debian packages are available in both debug and release though.

The upside of doing the combined RPM is that it would be fairly easy to do
both debug and release binaries.

--
Robin Dunn
Software Craftsman
robin@AllDunn.com Java give you jitters?
http://wxPython.org Relax with wxPython!

Kevin Altis wrote:

library license issues there (I hope). So, for Linux what other
simplifications might be possible? Is the fundamental issue the
lack of smarts in the RPM installers?

RPM system is not that stupid; the only thing it lacks is a way to
"download everything I need to install this package and I don't
currently have installed" with a single command. rpmfind is the tool
designed specifically for this task. I believe there's at least one
more apt-get like tool for RPMs in the wild, too, but I forgot its
name (try freshmeat...)

HTH,
Vaclav

Vaclav Slavik wrote:

Kevin Altis wrote:

library license issues there (I hope). So, for Linux what other
simplifications might be possible? Is the fundamental issue the
lack of smarts in the RPM installers?

RPM system is not that stupid; the only thing it lacks is a way to "download everything I need to install this package and I don't currently have installed" with a single command. rpmfind is the tool designed specifically for this task. I believe there's at least one more apt-get like tool for RPMs in the wild, too, but I forgot its name (try freshmeat...)

Mandrake's urpmi and rpmdrake are just the thing you're looking for. With urpmi, you just type "urpmi <packagename>", it asks if you want to install dependent packages, then it either downloads the packages from the net or asks you to insert the correct CD (it even ejects the CD for you :wink: ). rpmdrake is a graphical layer on top of this that makes it easy to choose what to install or uninstall (it lets you find by filename, by description, by category, etc.)

The whole system is so nice that I can't do without it anymore. :slight_smile:

Shane

Thanks for the comments. This isn't for my own machine. The whole point of
making wxPython easier to install and use on Linux is to leverage the tools
that are already on the users machine and automate the setup and download
process without alienating the user by installing things that might
negatively impact the rest of their system. That means if there is some
additional tool that isn't part of most Linux installations, it might not be
possible to use it. When the subject of wxPython on Linux comes up on c.l.py
there always seems to be someone posting about the difficulties of getting
wxPython running. So, the default Linux install probably needs improvement.

I brought up this issue because on Windows, wxPython is self-contained and
extremely simple to install since there is a standard double-clickable EXE
installer. The wxmsw DLL is part of the package. The only issue on Windows
is that you have to match the wxPython installer to a particular version of
Python. If it was possible to have a single installer that worked for all
supported versions of Python that might be even better, even if it increased
the installer size a few megs.

It would also be interesting to know whether the hybrid version confuses a
lot of users. It might make more sense for the normal version to be the
default and have hybrid clearly identified as something to use for testing,
possibly changing the name to -debug instead of -hybrid. If I was trying
wxPython for the first time and the script exited and showed memory leaks,
then that would probably lessen my enthusiasm for wxPython; most of the time
the "memory leaks" aren't real, but rather a consequence of the order
objects are freed when the script quits.

Just some ideas. In the next month or so we'll have a 2.3.3 final release
and wxPython Mac will hopefully be ready for prime time. So, I'm looking
forward to doing a lot more wxPython promotion in the near future and simple
installation is the first step.

ka

···

-----Original Message-----
From: wxpython-users-admin@lists.wxwindows.org
[mailto:wxpython-users-admin@lists.wxwindows.org]On Behalf Of
Shane Hathaway
Sent: Thursday, April 18, 2002 10:23 AM
To: wxpython-users@lists.wxwindows.org
Subject: Re: [wxPython] wxPython on Linux as a single package?

Vaclav Slavik wrote:
> Kevin Altis wrote:
>
>>library license issues there (I hope). So, for Linux what other
>>simplifications might be possible? Is the fundamental issue the
>>lack of smarts in the RPM installers?
>
>
> RPM system is not that stupid; the only thing it lacks is a way to
> "download everything I need to install this package and I don't
> currently have installed" with a single command. rpmfind is the tool
> designed specifically for this task. I believe there's at least one
> more apt-get like tool for RPMs in the wild, too, but I forgot its
> name (try freshmeat...)

Mandrake's urpmi and rpmdrake are just the thing you're looking for.
With urpmi, you just type "urpmi <packagename>", it asks if you want to
install dependent packages, then it either downloads the packages from
the net or asks you to insert the correct CD (it even ejects the CD for
you :wink: ). rpmdrake is a graphical layer on top of this that makes it
easy to choose what to install or uninstall (it lets you find by
filename, by description, by category, etc.)

The whole system is so nice that I can't do without it anymore. :slight_smile:

Shane

Kevin Altis wrote:

When the subject of wxPython on Linux comes up on c.l.py
there always seems to be someone posting about the difficulties of getting
wxPython running. So, the default Linux install probably needs improvement.

hmm. I havn't noticed much of that traffic, but maybe I ignore it. Also
most of the real complaints I have heard about installing wxPython are
in comparison to tkInter. I've heard the same complaints about Numeric,
for instance, which doesn't rely on anything other than Python.

I have never had any problems getting wxPython to work on Linux, but it
could be a little quicker. I'm not sure putting it all inot one package
is that useful. At least with rpms, in is only a tiny bit easier to
instal one rpm than it is to install 10. In fact, if you put all the
related rpms in their own directory, you can just do a:

rpm -Uvh *

and that's it. rpm will open all the files, so that if they are
dependent on one another all will be well.

One thing I could suggest is that it might be worth putting all the
files required for, say RedHat 7.2 in one place, including all the
pre-requisites. It is a bit annoying to have to chase them all down from
separate places. Frankly, Robin has set this up very well on the website
so it's only a matter of follopwing a few links, but for a little extra
space on the server, it could just be there in one place.

Someone would have to do this, however, and honestly, I'm not
volunteering.

-Chris

···

--
Christopher Barker, Ph.D.
Oceanographer
                                        
NOAA/OR&R/HAZMAT (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception

Chris.Barker@noaa.gov