Opened 17 years ago

Closed 15 years ago

Last modified 15 years ago

#12447 closed submission (fixed)

NEW: py-db

Reported by: macfreek (Freek Dijkstra) Owned by: nerdling (Jeremy Lavergne)
Priority: Normal Milestone:
Component: ports Version: 1.7.0
Keywords: Cc: jmroot (Joshua Root), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), dweber@…, mf2k (Frank Schima)
Port: py-db

Description

Attached you will find a new port for pydb, an extended Python debugger. I named it "py-db" to be consistent with other Python packages.

While py-db recommends the existing ddd package (together, it gives a graphical Pyhton debugger), it does not depend on it. The package consists of two files: the Portfile, and a small patch.

Attachments (6)

Portfile (699 bytes) - added by macfreek (Freek Dijkstra) 17 years ago.
patch-Makefile.in.diff (616 bytes) - added by macfreek (Freek Dijkstra) 17 years ago.
patch for the Makefile (it fixes a symlink). This file must be places in a folder "files"
Portfile.2 (1.0 KB) - added by nerdling (Jeremy Lavergne) 15 years ago.
updated to new version — should it be in PortGroup python25?
patch-Makefile.in.2.diff (494 bytes) - added by nerdling (Jeremy Lavergne) 15 years ago.
fixed
Portfile.3 (1.1 KB) - added by nerdling (Jeremy Lavergne) 15 years ago.
attempt to add portgroup
mcl-Portfile (1.7 KB) - added by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez) 15 years ago.

Download all attachments as: .zip

Change History (29)

Changed 17 years ago by macfreek (Freek Dijkstra)

Attachment: Portfile added

Changed 17 years ago by macfreek (Freek Dijkstra)

Attachment: patch-Makefile.in.diff added

patch for the Makefile (it fixes a symlink). This file must be places in a folder "files"

comment:1 Changed 16 years ago by jmroot (Joshua Root)

Cc: jmr@… added

In the interest of determinism, would it be possible to disable the ddd support by default (whether ddd is installed or not), and add a +ddd variant that adds a dependency on ddd and enables pydb's support for it?

comment:2 Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: mcalhoun@… added

Cc Me!

comment:3 in reply to:  1 Changed 15 years ago by nerdling (Jeremy Lavergne)

Replying to jmr@…:

In the interest of determinism, would it be possible to disable the ddd support by default (whether ddd is installed or not), and add a +ddd variant that adds a dependency on ddd and enables pydb's support for it?

Along those lines, if the package installs ddd by default you can use a +no_ddd variant to disable it. Both .append and .delete are available for modifying the depends and configure variables.

comment:4 Changed 15 years ago by nerdling (Jeremy Lavergne)

Version: 1.5.01.7.0

If we have a maintainer timeout, which route do we want to go with the variants: +no_ddd or +ddd?

comment:5 Changed 15 years ago by nerdling (Jeremy Lavergne)

Cc: snc@… added

Cc Me!

comment:6 in reply to:  4 Changed 15 years ago by blb@…

Replying to snc@…:

If we have a maintainer timeout, which route do we want to go with the variants: +no_ddd or +ddd?

I'd say disable it by default and have a +ddd variant for enabling it. Also, should it be called py-db or py-pydb? When going with other python versions, it becomes either py25-db or py25-pydb, the latter reads better, at least to me.

comment:7 Changed 15 years ago by nerdling (Jeremy Lavergne)

Owner: changed from macports-tickets@… to snc@…
Port: py-db added
Status: newassigned

Warning: Line 4 should be a newline (after PortSystem)

Warning: Using full email address for no/open maintainer

Also, on the ddd thing: I don't believe it's necessary as the two do not link to each other. It merely is a way of doing the "we recommend using this additional software."

As for package name, should this be portgroup python25 1.0?

Changed 15 years ago by nerdling (Jeremy Lavergne)

Attachment: Portfile.2 added

updated to new version — should it be in PortGroup python25?

Changed 15 years ago by nerdling (Jeremy Lavergne)

Attachment: patch-Makefile.in.2.diff added

fixed

Changed 15 years ago by nerdling (Jeremy Lavergne)

Attachment: Portfile.3 added

attempt to add portgroup

comment:8 Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Attached is my take on the port.
The changes are:

  • Because it uses Python 2.5, the name should be py25-db.
  • The variable categories was missing.
  • Obfuscate e-mail address.
  • There is a setup.py, but the INSTALL files recommends "./configure; make; make install," so drop PortGroup.
  • Set the PYTHON variable so that the correct python is found.
  • I tried to install it in such a way that there would be no conflicts if py25-db was ever created (this means the emacs files will not be found by default).

Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Attachment: mcl-Portfile added

comment:9 in reply to:  8 Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Replying to mcalhoun@…:

  • I tried to install it in such a way that there would be no conflicts if py25-db was ever created (this means the emacs files will not be found by default).

Sorry, I meant py26-db.

comment:10 Changed 15 years ago by nerdling (Jeremy Lavergne)

Cc: snc@… removed

Thanks mcalhoun! Everything is in the right paths now, it seems.

Since we were in a maintainer timeout, I'll go ahead and commit this.

comment:11 Changed 15 years ago by nerdling (Jeremy Lavergne)

Resolution: fixed
Status: assignedclosed

Committed as r48634.

comment:12 in reply to:  8 Changed 15 years ago by dweber@…

Resolution: fixed
Status: closedreopened

Replying to mcalhoun@…:

Attached is my take on the port.
The changes are:

  • Because it uses Python 2.5, the name should be py25-db.
  • The variable categories was missing.
  • Obfuscate e-mail address.
  • There is a setup.py, but the INSTALL files recommends "./configure; make; make install," so drop PortGroup.
  • Set the PYTHON variable so that the correct python is found.
  • I tried to install it in such a way that there would be no conflicts if py25-db was ever created (this means the emacs files will not be found by default).

Please see https://trac.macports.org/ticket/17071

In that case, we resolved to use the name py25-pydb. As noted there, port search pydb will return nothing if you use the name 'py-db' or 'pyXX-db', please reconsider the naming convention. As it is (on my system), I'm very pleased to see this result:

[ dweber@XXXX /data/mpab ]$ port search pydb
py25-pydb @1.23 (python)
    Extended Python Debugger

Best regards, Darren

comment:13 Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: dweber@… macsforever2000@… added
Resolution: fixed
Status: reopenedclosed

This situation is not good.

We have two tickets on the same issue (#17071 and this one).
Since this is the older, I will close #17071 and CC everyone on this ticket.

What's worse is that we now have two ports of the same software package (r48634 and r48640).

py26-pydb has several serious problems:

  • It will not work because the directory (py25-pydb) and name variable (py26-pydb) are different.
  • It will conflict with py26-pydb if it is ever created.

As a solution, I will

  • delete py25-pydb (r48644)
  • move py25-db to py25-pydb (r48646)
  • add dweber as maintainer (r48646)

I think this will satisfy everyone's concerns.

I will close this ticket for now.
If there are still problems, we can reopen.

comment:14 in reply to:  13 ; Changed 15 years ago by dweber@…

Resolution: fixed
Status: closedreopened

Replying to mcalhoun@…:

This situation is not good.

We have two tickets on the same issue (#17071 and this one).
Since this is the older, I will close #17071 and CC everyone on this ticket.

What's worse is that we now have two ports of the same software package (r48634 and r48640).

py26-pydb has several serious problems:

  • It will not work because the directory (py25-pydb) and name variable (py26-pydb) are different.
  • It will conflict with py26-pydb if it is ever created.

As a solution, I will

  • delete py25-pydb (r48644)
  • move py25-db to py25-pydb (r48646)
  • add dweber as maintainer (r48646)

I think this will satisfy everyone's concerns.

I will close this ticket for now.
If there are still problems, we can reopen.

All looks good to me. I have just created (and committed) py26-pydb (why would this conflict with py25-pydb?); it works on my system, ie:

[ dweber@XXXX ~/macports-trunk/dports ]$ ipython2.6 
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/Magic.py:38: DeprecationWarning: the sets module is deprecated
  from sets import Set
Python 2.6.1 (r261:67515, Jan 30 2009, 11:23:18) 
Type "copyright", "credits" or "license" for more information.

IPython 0.9.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.

In [1]: import pydb

In [2]: pydb.
pydb.HELP_URL          pydb.__hash__          pydb.__str__           pydb.info              pydb.set
pydb.Pdb               pydb.__init__          pydb.__subclasshook__  pydb.pm                pydb.set_trace
pydb.URL               pydb.__name__          pydb.app_name          pydb.post_mortem       pydb.show
pydb.__builtins__      pydb.__new__           pydb.complete          pydb.pydb              pydb.sighandler
pydb.__class__         pydb.__package__       pydb.debugger          pydb.pydbbdb           pydb.subcmd
pydb.__delattr__       pydb.__path__          pydb.disassemble       pydb.pydbcmd           pydb.sys
pydb.__dict__          pydb.__reduce__        pydb.display           pydb.run               pydb.threadinfo
pydb.__doc__           pydb.__reduce_ex__     pydb.exception_hook    pydb.runcall           pydb.version
pydb.__file__          pydb.__repr__          pydb.fns               pydb.runeval           
pydb.__format__        pydb.__setattr__       pydb.gdb               pydb.runl              
pydb.__getattribute__  pydb.__sizeof__        pydb.help              pydb.runv              

In [2]: pydb.version 
Out[2]: '1.25'

comment:15 in reply to:  14 ; Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Replying to dweber@…:

All looks good to me. I have just created (and committed) py26-pydb (why would this conflict with py25-pydb?); it works on my system, ie:

When did you commit db26-pydb?
I do not see it.

It would cause conflict because there are binaries, manpages, and emacs files installed.
Both py25-pydb and py26-pydb will want to install theses same files.

-Marcus

comment:16 in reply to:  15 Changed 15 years ago by dweber@…

Replying to mcalhoun@…:

Replying to dweber@…:

All looks good to me. I have just created (and committed) py26-pydb (why would this conflict with py25-pydb?); it works on my system, ie:

When did you commit db26-pydb?
I do not see it.

It would cause conflict because there are binaries, manpages, and emacs files installed.
Both py25-pydb and py26-pydb will want to install theses same files.

-Marcus

It seems to be committed now. I've tried to simplify the python version specification with a few variables at the top of the Portfile. It appears that python2.6 is providing the correct site-packages path to

${prefix}/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages

I'm sorry about the binaries, man, and emacs files, if they conflict. I've taken a quick look at the py25-pydb package and most of those custom tweaks don't seem to work with python2.6. I'm out of time today, but if someone could look into these additional files installed to resolve conflicts - please do. As it is, this is working for me, ie:

[ dweber@elegans ~/ports ]$ sudo port install py26-pydb
--->  Fetching py26-pydb
--->  Attempting to fetch pydb-1.25.tar.gz from http://internap.dl.sourceforge.net/bashdb
--->  Verifying checksum(s) for py26-pydb
--->  Extracting py26-pydb
--->  Configuring py26-pydb
--->  Building py26-pydb
--->  Staging py26-pydb into destroot
--->  Installing py26-pydb @1.25_0
--->  Activating py26-pydb @1.25_0
--->  Cleaning py26-pydb
[ dweber@elegans ~/ports ]$ which python2.6
/opt/local/bin/python2.6
[ dweber@elegans ~/ports ]$ python2.6
Python 2.6.1 (r261:67515, Jan 30 2009, 11:23:18) 
[GCC 4.0.1 (Apple Inc. build 5490)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pydb
>>> pydb.version
'1.25'
>>> 
[ dweber@elegans ~/ports ]$ pydb-2.6 
(Pydb) 
[ dweber@elegans ~/ports ]$ which pydb-2.6 
/opt/local/bin/pydb-2.6

comment:17 Changed 15 years ago by dweber@…

This is crazy. After I make a change to py26-pydb in my svn checkout, the system is changing files in the py25-pydb port - what is going on with my subversion process here (see terminal session below)? Note, there are no symlinks (and I don't see any hard links) between py25-pydb and py26-pydb on my file system (how can I check for hard links?). You may have to reinstate or rollback py25-pydb????

[ dweber@elegans ~/macports-trunk/dports/python/py26-pydb ]$ 
[ dweber@elegans ~/macports-trunk/dports/python/py26-pydb ]$ vim Portfile 
[ dweber@elegans ~/macports-trunk/dports/python/py26-pydb ]$ 
[ dweber@elegans ~/macports-trunk/dports/python/py26-pydb ]$ svn commit -m "changed ${prefix}/bin/pydb-2.6 to ${prefix}/bin/${name} to avoid conflicts with other python versions" Portfile 
Sending        Portfile
Transmitting file data .
Committed revision 48659.
[ dweber@elegans ~/macports-trunk/dports/python/py26-pydb ]$ 
[ dweber@elegans ~/macports-trunk/dports/python/py26-pydb ]$ cd ..
[ dweber@elegans ~/macports-trunk/dports/python ]$ svn update
U    py25-pydb/Portfile
Updated to revision 48659.
[ dweber@elegans ~/macports-trunk/dports/python ]$ more py25-pydb/Portfile 
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:
sw=4:ts=4:sts=4
# $Id: Portfile 48659 2009-03-26 21:55:55Z dweber@macports.org $

PortSystem       1.0

# Set general python version parameters
set pyver        2.6
set python       python${pyver}
set pyport       [join [lrange [split ${python} .] 0 1] ""]
set pyframe      ${frameworks_dir}/Python.framework/Version/${pyver}
set pysite       ${prefix}/Library/Frameworks/Python.framework/Versions/${pyver}/lib/${python}/site-packages

name             py26-pydb
version          1.25
categories       python
maintainers      software@macfreek.nl dweber openmaintainer
description      Extended Python Debugger
long_description \
    pydb is an expanded version of the Python debugger loosely based on the gdb command set. \
    To use pydb in a GUI, also install the ddd packages, and run "ddd --pydb"

homepage         http://bashdb.sourceforge.net/pydb/
platforms        darwin

master_sites     sourceforge:bashdb

distname         pydb-${version}

checksums        md5  86ab5dcd4f1c81192aeb7e0828371b6c \
                 sha1 9e6242c051089e53f3da4fcecba469c2d868de55 \
                 rmd160 afc83ea56149c3b1fba84089386b6974f01b1344

depends_lib-append port:${pyport}

configure.args-append \
    --with-python=${prefix}/bin/${python}

post-destroot {
    system "rm -f /opt/local/bin/pydb-${pyver}"
    ln -s ${pysite}/pydb/pydb.py /opt/local/bin/${name}
}

[ dweber@elegans ~/macports-trunk/dports/python ]$ 

comment:18 Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

As far as I can tell, there is no py26-pydb directory on the subversion server.

I am going to take a wild guess that you used

cp -r py25-pydb py26-pydb

instead of

svn cp py25-pydb py26-pydb

Is that possible?

py25-pydb is not in a good state.
Do you want me to roll back r48659 and r48656?

comment:19 in reply to:  18 Changed 15 years ago by dweber@…

Replying to mcalhoun@…:

As far as I can tell, there is no py26-pydb directory on the subversion server.

I am going to take a wild guess that you used

cp -r py25-pydb py26-pydb

instead of

svn cp py25-pydb py26-pydb

Is that possible?

py25-pydb is not in a good state.
Do you want me to roll back r48659 and r48656?

Your absolutely right! Yep, I am sorry, py25-pydb is corrupted, please roll it back to the point where you did move py25-db to py25-pydb (r48646) [or something near there, before I hacked it].

It was my fault, because I ran

cd ~/macports-trunk/dports/python
cp -r py25-pydb py26-pydb

So all edits within py26-pydb carried with it the .svn module for py25-pydb, hence all my changes to py26-pydb were applied to py25-pydb. I'll never make that mistake again.

I've started with a fresh co from trunk and now added py26-pydb correctly. I hope you can see it now.

Sorry, Darren

comment:20 Changed 15 years ago by dweber@…

py26-pydb should be working as follows:

[ dweber@elegans ~/ports ]$ port search pydb
py26-pydb @1.25 (python)
    Extended Python Debugger
[ dweber@elegans ~/ports ]$ sudo port uninstall py26-pydb
Password:
--->  Deactivating py26-pydb @1.25_0
--->  Uninstalling py26-pydb @1.25_0
[ dweber@elegans ~/ports ]$ sudo port install py26-pydb
--->  Fetching py26-pydb
--->  Verifying checksum(s) for py26-pydb
--->  Extracting py26-pydb
--->  Configuring py26-pydb
--->  Building py26-pydb
--->  Staging py26-pydb into destroot
--->  Installing py26-pydb @1.25_0
--->  Activating py26-pydb @1.25_0
--->  Cleaning py26-pydb
[ dweber@elegans ~/ports ]$ python2.6
Python 2.6.1 (r261:67515, Jan 30 2009, 11:23:18) 
[GCC 4.0.1 (Apple Inc. build 5490)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pydb
>>> pydb.version
'1.25'
>>> 
[ dweber@elegans ~/ports ]$ py26-pydb 
(Pydb) 
[ dweber@elegans ~/ports ]$ which py26-pydb 
/opt/local/bin/py26-pydb

Best, Darren

comment:21 Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Resolution: fixed
Status: reopenedclosed

Changes undone in r48670.

comment:22 Changed 15 years ago by jmroot (Joshua Root)

Type: enhancementsubmission

comment:23 Changed 15 years ago by (none)

Milestone: Port Submissions

Milestone Port Submissions deleted

Note: See TracTickets for help on using tickets.