Thread: [Pythonsiphon-devel] features
Status: Beta
Brought to you by:
ssthapa
|
From: Suchandra T. <s-t...@al...> - 2002-01-03 22:05:20
|
Hi, I would like to know what suggestions people on this list=20
have for features to add to ciphon. At this point I have some=20
confidence in ciphon's ability to download and install modules on
unix platforms using the standard install. I'm not quite so confident
about rpm installs. I've received a patch from Gerhard H=E4ring that
uses a temporary directory for downloading and building which I plan
on incorporating. I also think Thomas Heller has gotten ciphon 0.3.4=20
working on windows.
Currently my todo list for ciphon is (in no particular order):
some form of windows support
better rpm support
support for binary packages
support for debian pkgs (not for a while unfortunately)
--=20
------------------------------------------------------------------
Suchandra S. Thapa=20
s-t...@al...
------------------------------------------------------------------
|
|
From: Thomas H. <tho...@io...> - 2002-01-04 09:32:09
|
> Hi, I would like to know what suggestions people on this list > have for features to add to ciphon. At this point I have some > confidence in ciphon's ability to download and install modules on > unix platforms using the standard install. I'm not quite so confident > about rpm installs. I've received a patch from Gerhard H=E4ring that > uses a temporary directory for downloading and building which I plan > on incorporating. I also think Thomas Heller has gotten ciphon 0.3.4 > working on windows. > Currently my todo list for ciphon is (in no particular order): > > some form of windows support > better rpm support > support for binary packages > support for debian pkgs (not for a while unfortunately) > Suchandra, 1. I would mostly like some code/explanation/whatever about how to submit a package to ciphon. I assume currently you submit packages manually? 2. Windows support: I simply replaced most open(fname, "w") calls with open(fname, "wb"). Windows always needs the 'b' flag for binary files. Since I could not find a suitable tar.exe running on windows, I took the first tarfile Python module I could find (from Jason Pedrone, http://www.demonseed.net/~jp/code/tarfile.py) and used it from ciphon. 3. How does ciphon use rpm's under linux? If I understand correctly, you download the .tar.gz package, build an rpm from it, and then install it? Maybe I should do something similar under windows (building and then starting a bdist_wininst installer). 4. Support for binary packages is essential under Windows, because a lot of people have no compiler. Additional catch: Extension modules to run under windows must be compiled separately for each Python version! Regards, Thomas PS: I have some problems reading your mails, Suchandra, because I always see them as empty messages with attachments. I'm sure it's my fault becau= se I'm using outlook express... Someone has a tip for me? |
|
From: Suchandra T. <s-t...@al...> - 2002-01-04 17:09:59
|
On Fri, Jan 04, 2002 at 10:31:02AM +0100, Thomas Heller wrote:
> 1. I would mostly like some code/explanation/whatever about how
> to submit a package to ciphon. I assume currently you submit
> packages manually?
I'll add more document this within the package. Currently
the submission is done manually. There are two utilities that are
used to generate the repository. The createspec.py script (in /utils) asks
the user a few questions and then creates a file with the specification
for the package. The second utility createlist.py takes a directory
with package specifications and package tar balls and then creates
a packages.xml and a directory for distribution. The packages.xml is a
compilation of the individual package specifications with package size and
the package's location relative to the base of the distribution directory.
The distribution directory created by the createlist.py contains 16
subdirectories (0-9, A-F) where packages can be located. The packages
are placed in the subdirectory that matches the first character of the SHA
hash of the package's name.
Right now I have a group of packages and specifications and just run
the createlist.py whenever I update a package and upload the directory and
packages.xml file to the tummy server.
The other file used is the servers.xml but I will manually change this.
> 2. Windows support: I simply replaced most open(fname, "w") calls
> with open(fname, "wb"). Windows always needs the 'b' flag for
> binary files. Since I could not find a suitable tar.exe running on
> windows, I took the first tarfile Python module I could find
> (from Jason Pedrone, http://www.demonseed.net/~jp/code/tarfile.py)
> and used it from ciphon.
I can add code to ciphon to choose the mode based on the the platform
distutils is running on. I'll look into adding the tar file support into
ciphon. Is the module you mentioned a pure python module?
> 3. How does ciphon use rpm's under linux? If I understand correctly,
> you download the .tar.gz package, build an rpm from it, and then
> install it? Maybe I should do something similar under windows (building
> and then starting a bdist_wininst installer).
Yes, if the user specifies a rpm installation then ciphon builds
using bdist_rpm and then installs the generated rpm. Doing something
similar for windows involves changing the configuration handling to support
a windows option for installtype and then adding a check in the Installer
class. The changes should take about 10-20 lines of code.
> 4. Support for binary packages is essential under Windows, because
> a lot of people have no compiler. Additional catch: Extension modules
> to run under windows must be compiled separately for each Python version!
That is a bit of a problem, however it shouldn't be to difficult to
handle. I think there will probably be similar problems with extension
modules under unix platforms. I'm still trying to figure out a way to
cleanly handle the possible permutations of libraries , platforms, and python
versions.
> PS: I have some problems reading your mails, Suchandra, because I always
> see them as empty messages with attachments. I'm sure it's my fault because
> I'm using outlook express... Someone has a tip for me?
Probably due too the gpg signatures on my emails. I'll disable them
on the list and in messages to you.
--
------------------------------------------------------------------
Suchandra S. Thapa
s-t...@al...
------------------------------------------------------------------
|
|
From: Thomas H. <tho...@io...> - 2002-01-04 19:20:06
|
From: "Suchandra Thapa" <s-t...@al...> > > > 2. Windows support: I simply replaced most open(fname, "w") calls > > with open(fname, "wb"). Windows always needs the 'b' flag for > > binary files. Since I could not find a suitable tar.exe running on > > windows, I took the first tarfile Python module I could find > > (from Jason Pedrone, http://www.demonseed.net/~jp/code/tarfile.py) > > and used it from ciphon. > > I can add code to ciphon to choose the mode based on the the platform > distutils is running on. I'll look into adding the tar file support into > ciphon. Is the module you mentioned a pure python module? Yes, pure python. Here's the changed code (Install.__unpack): def __unpack(self): """Unpack a package so that it can be built and installed""" from tarfile import TarFile tf = TarFile(self.__fileName) tf.untar('.') return > > > 3. How does ciphon use rpm's under linux? If I understand correctly, > > you download the .tar.gz package, build an rpm from it, and then > > install it? Maybe I should do something similar under windows (building > > and then starting a bdist_wininst installer). > > Yes, if the user specifies a rpm installation then ciphon builds > using bdist_rpm and then installs the generated rpm. Knowing nearly nothing about rpm, what do you gain by this? Uninstallation support? > Doing something > similar for windows involves changing the configuration handling to support > a windows option for installtype and then adding a check in the Installer > class. The changes should take about 10-20 lines of code. Could installtype simply be 'source' or 'setup' to install by setup.py, and 'native' or 'system' to use bdist_wininst, rpm, or whatever is the preferred method for the system? BTW: How is uninstallation handled? The bdist_wininst installer includes an uninstaller, but this one of course does not remove the packes from ~/.ciphon/installed.xml... > > PS: I have some problems reading your mails, Suchandra, because I always > > see them as empty messages with attachments. I'm sure it's my fault because > > I'm using outlook express... Someone has a tip for me? > > Probably due too the gpg signatures on my emails. I'll disable them > on the list and in messages to you. Great! It did work in this case. Thomas |
|
From: Gerhard <ger...@gm...> - 2002-01-05 04:25:22
|
Le 03/01/02 à 16:23, Suchandra Thapa écrivit: > Hi, I would like to know what suggestions people on this list > have for features to add to ciphon. At this point I have some > confidence in ciphon's ability to download and install modules on > unix platforms using the standard install. I'm not quite so confident > about rpm installs. I've received a patch from Gerhard Häring that > uses a temporary directory for downloading and building which I plan > on incorporating. I also think Thomas Heller has gotten ciphon 0.3.4 > working on windows. > Currently my todo list for ciphon is (in no particular order): > > some form of windows support > better rpm support > support for binary packages > support for debian pkgs (not for a while unfortunately) I've recently converted to Debian from SuSE (RPM based), so I could perhaps help with or at least test the dpkg stuff. I've also created several RPM packages and I'm maintaining one FreeBSD "port". I think I know RPM reasonably well. I don't view native installation (RPM/dkpkg/win32/FreeBSD package, whatver) as a priority. At least on Unixen, it's IMHO of questionable value. Pythonsiphon must eventually know about package dependencies in its own database, anyway. I think binary packages are much more important, because that's the only reasonable choice for most Python users on some platforms like Windows (the chances somebody has installed Cygwin or mingw32 or even Visual C++ are pretty slim on win32). Is the project currently about the ultimate Python package management system or more a proof-of-conept? That's IMO an important point. I'm personally looking at it more as a proof-of-concept. But these are very important, too. So IMHO we shouldn't try to cram all the features in: native package management is not so imporant IMHO, binary packages are, so are different methods of unpacking like .tar.gz and .zip. Other useful features would be uninstalling and upgrading packages and their dependencies, but once package dependencies are recorded, this would probably be trivial. Gerhard -- mail: gerhard <at> bigfoot <dot> de registered Linux user #64239 web: http://www.cs.fhm.edu/~ifw00065/ OpenPGP public key id 86AB43C0 public key fingerprint: DEC1 1D02 5743 1159 CD20 A4B6 7B22 6575 86AB 43C0 reduce(lambda x,y:x+y,map(lambda x:chr(ord(x)^42),tuple('zS^BED\nX_FOY\x0b'))) |
|
From: Suchandra T. <s-t...@al...> - 2002-01-06 22:53:35
|
On Sat, Jan 05, 2002 at 05:25:14AM +0100, Gerhard Häring wrote:
> I've recently converted to Debian from SuSE (RPM based), so I could
> perhaps help with or at least test the dpkg stuff. I've also created
> several RPM packages and I'm maintaining one FreeBSD "port". I think I
> know RPM reasonably well.
The problem with debian installs is that distutils doesn't have any
support for creating a deb package. I would need to write that, but
really don't consider it a priority at the moment.
> I think binary packages are much more important, because that's the only
> reasonable choice for most Python users on some platforms like Windows
> (the chances somebody has installed Cygwin or mingw32 or even Visual C++
> are pretty slim on win32).
I think I'm beginning to agree with your assesment. Although I would
really prefer that the rpm installs work, the fact that it requires packages
have a MANIFEST or MANIFEST.in file otherwise the build will fail makes me
believe that it may be more productive to focus on other issues right now.
> Is the project currently about the ultimate Python package management
> system or more a proof-of-conept? That's IMO an important point. I'm
> personally looking at it more as a proof-of-concept. But these are very
> important, too.
I initially started this out as a proof of concept program in the
hopes that design issues could be discussed and tested. However, ciphon
seems to be heading towards being an actual package management system for
production use.
> So IMHO we shouldn't try to cram all the features in: native package
> management is not so imporant IMHO, binary packages are, so are
> different methods of unpacking like .tar.gz and .zip.
Cross platform support is an important area. Although I'm not entirely
sure about the best way, I'll probably put some sort of support for it in
and see how well it works.
> Other useful features would be uninstalling and upgrading packages and
> their dependencies, but once package dependencies are recorded, this
> would probably be trivial.
Upgrading should be okay, uninstalling would be more difficult since
distutils doesn't record the installed files for packages. That's one of
the reasons why I wanted native support. However, the perl CPAN shell
doesn't seem to support uninstallation either.
--
------------------------------------------------------------------
Suchandra S. Thapa
s-t...@al...
------------------------------------------------------------------
|