Ports info SQL database feeder (Fwd: [27415]
trunk/base/portmgr/packaging)
Juan Manuel Palacios
jmpp at macports.org
Sun Aug 5 22:45:48 PDT 2007
Evening everyone!
Per the message below, in r27415 I committed a rather big facelift
to the PortIndex2MySQL script that basically gives us an updated tool
that extracts important information out of every single port in our
tree (per a valid entry in sources.conf) and injects it as SQL
statements into any (I think) SQL based db of our choosing, first
printing them to a temporary flat file. I haven't tested database
functionality yet as I've been struggling to find some time to setup
MySQL5 locally, but for the rest I can account for 100% functionality.
I would love it if some of our database savvy members (Ryan? Chris?
James? Anyone else?) could take the time to look at the script and
find interesting ways to improve and extend it; for instance, what
other tables could we create with valuable information out of our
ports? One obvious thing we need to think about is, of course, what
to do with the script's results. That is to say, we need to put this
baby to good use! The old ports.php page (trunk/www/ports.php,
OpenDarwin days) was, I believe, a good database client, so I'll work
on it next to bring it up to par with the new PortIndex2MySQL script.
But other than that, it's no secret that our current webpage is a
sorry excuse for an information portal and working on ports.php
without knowing if it can be integrated into a reworked site (Kevin?)
might be a bit of a waste of time. I personally would love to
"donate" my time to such cause if it helps us get on track to start
working on a revamped site -- and I'm positive a lively updated page
with ports information is a corner stone of any new design!
There's also the issue of James' http://db.macports.org portal for
mpwa, which is written in Ruby on Rails. Are there any plans to use
mpwa and autosubmit (trunk/base/portmgr/autosubmit.tcl) to improve
our web presence? Could such portal benefit from the results of
PortIndex2MySQL? I would hate to see our little team waste its time
working on two different approaches (php & RoR) to fix the same
problem: a page with always up to date information of our ports, a la
ports.php.
So people, feedback please! Running PortIndex2MySQL is now as simple
as creating a cron/launchd entry for it as it stands, but we still
need to put the results to good use. We most definitely need a
completely revamped web presence and I would love us to start working
on it sooner than later (lets admit it, there's a disgustingly
obvious reason why darwinports.com is so successful, as much as we
may hate it!). I can interface with Mac OS Forge for resources and
setup (there's also the issue of integrating the new guide), but we
first need to agree on what we want to see in a new site and how to
implement it.
Regards,...
-jmpp
Begin forwarded message:
> From: source_changes at macosforge.org
> Date: August 2, 2007 11:15:12 PM GMT-04:00
> To: macports-changes at lists.macosforge.org
> Subject: [27415] trunk/base/portmgr/packaging
> Reply-To: macports-dev at lists.macosforge.org
>
> Revision 27415
> Author jmpp at macports.org
> Date 2007-08-02 20:15:11 -0700 (Thu, 02 Aug 2007)
> Log Message:
> Sizeable facelift to the PortIndex2MySQK.tcl script. Highlights:
> * Bring it up to date wrt the macports1.0 api and into the new
> namespace;
> * Make it self-contained, writing its sql output to a flat file
> directly and then piping its contents to a proper database command
> (like mysql5(1)); this eliminates both the need to load the
> mysqltcl library or, the other case, wrap the tcl code with a shell
> script to do all the needed redirection to get the information into
> the db;
> * Get rid of a lot of now unnecessary code due to the rework above;
> * Provide abstraction variables to easily adapt the script to any
> scenario and a proc to read the db password from a file that must
> exist (this bit could definitely use some improvements, like for
> passwordless db's);
> * Add build and run dependencies for a given port as sql statements
> into the db (previously only lib deps were being recorded);
> * For fields with multiple and hierarchycal values, like
> categories, index them sequentially up from 1 (1 being topmost),
> rather than 1 for the first one (most important) and 0 for the rest
> (flat second place) as it was being done;
> * Use procs in the macports1.0 package, like ui_error;
> * Provide a Makefile (currently unhooked from MacPorts build
> system) to tie the script into an already configured MacPorts
> installation.
> So, in a nutshell, the script now works to generate valid SQL
> statements for our ports tree, we can extend it to do anything else
> we want and then find a client that will read such db and thus put
> it to good use ;-) (old ports.php page, here I come!)
> Modified Paths
> trunk/base/portmgr/packaging/PortIndex2MySQL.tcl
>
> Added Paths
> trunk/base/portmgr/packaging/Makefile
More information about the macports-dev
mailing list