Walking a new user through installing Ports last week, I saw first hand 
how difficult it really is to get all the dependencies pulled in when 
installing in separate steps.  As such, I think that some changes need 
to be made to allow a simultaneous install, which should DTRT without 
the headaches.

The reason the whole song-and-dance is necessary is that there are 
overlaps between Ports packages and the distro's.  In such a case, 
setup.exe will decide which is newer solely based on the timestamp of 
the setup.ini.  Since the distro setup.ini is rebuilt every 10 minutes, 
it will inevitably be newer and the distro versions will be preferred 
instead of Ports' (hence the need for the sed call).  Therefore, perhaps 
the easiest solution is to eliminate these overlaps, so that Ports is 
purely an addition to the distro (instead of a partial replacement), and 
AFAIK setup.exe can easily deal with that.

The problem used to be *much* worse until last year.  By taking over 
Cygwin/X, I was then finally able to update the GNOME libraries, which 
removed the bulk of the overlaps.  Here is a summary of the remainder:

* Boost
Distro package is orphaned.  The Ports package seems to be working, but 
Boost is HUGE and needed a lot of work to de-Win32-ify it; it's hard to 
say that it's 100%, given its size.

* CMake
Unlike distro/upstream, Ports' CMake does not define WIN32, which more 
often than not is used by packages to mean MinGW/MSVC/GDI/etc.  The 
distro package is maintained by an upstream dev; some progress has been 
made in merging my patches[1], but until WIN32 is undefined then e.g. 
KDE4 will be practically impossible to build for Cygwin.

* DocBook
Distro package is orphaned.  I already volunteered (YA) to adopt it, so 
this should be cleared up soon.

* FLTK
Ports' version is *NIX/X11, the distro's is Win32/GDI.  Nothing in the 
distro uses its version, but two Ports packages use our version.  The 
good news is that only the -devel packages collide; the runtimes do not, 
so it's not urgent.

* Tcl/Tk
Again, Ports' version is *NIX/X11, the distro's is Win32/GDI.  There's 
been plenty of talk about switching to the X11 version on the lists, and 
AFAIK a switch would be accepted, but this switch affects a number of 
packages, so the transition would need some work.  This would remove the 
primary reason for Ports' python and ruby packages as well.

* e2fsprogs
Distro package is orphaned.  Ports' package is current and also provides 
shared libraries, but there is a bit of an issue that its libuuid 
"shadows" the (completely unrelated) w32api import lib of the same name. 
  I frankly don't care, but someone else might.  (Whatever happened to 
the discussion of moving w32api out of the default include/lib paths?) 
Fixing this overlap would allow the util-linux overlap to be removed as 
well.

* OCaml
Distro package is orphaned.  Ports' 3.11 package uses the *NIX/X11 
tcl/tk, and also provides shared stublibs and .cmxs modules with 
flexdll.  While this works fine for OCaml and many most OCaml 
extensions, it requires using OCaml's tools (which call flexlink) to 
compile and link code.  But, for instance, the usage of ocaml-facile 
(native code) in kalzium or the building of the GraphViz stublib binding 
do not use these tools, which leads to undefined symbols at link time 
which can only be resolved by using flexlink.  The alternative is, as is 
done in Ports' 3.10, is to use libcamlrun_shared to resolve symbols in 
stublibs; this allows the aforementioned cases to work, but would not 
allow for .cmxs modules.

* Qt4
I finally added this to the distro, but without Phonon or MySQL support, 
both of which are required for KDE4.  I'm still unsure about the 
stability of the MySQL server, although Amarok 2.2 with the embedded 
server seems to be alright, and adding Phonon means over a dozen more 
ITPs (and even more if the Xine backend is also built, as in Ports). 
Furthermore, with Qt 4.6, it seems that there is a move away from Phonon 
within Qt, but certainly not within KDE.  So either I could ITP the 
whole lot (which could take months given the usual speed of ITP 
reviews), or just MySQL and forget about the Phonon-dependent HTML5 A/V 
support in QtWebKit and leave Phonon in Ports for KDE.

* Xpdf
Besides the distro's package desperately needing an update for security 
issues, Ports' poppler package provides the pdfto* utilities instead. 
Ports' xpdf is therefore *just* /usr/bin/xpdf.  With Qt4 now in the 
distro, poppler can be ITP'd provided that the xpdf maintainer (who has 
been mostly absent as of late) is willing to coordinate.

* Also...
cppunit: needs update/rebuild for gcc4; request sent to main list.
links: orphaned in distro.
plotutils: orphaned in distro.
units: needs update/packaging fix for FHS; request sent to list.

I think that pretty well summarizes the issues.  If these remaining 
overlaps are removed, then Ports becomes a pure add-on to the distro, 
which should greatly simplify the Ports install process.  Any input, 
assistance, or positive reinforcement (especially financial :-D) will 
gladly be considered.


Yaakov
Cygwin Ports

[1] http://www.cmake.org/Bug/view.php?id=10122

------------------------------------------------------------------------------
Throughout its 18-year history, RSA Conference consistently attracts the
world's best and brightest in the field, creating opportunities for Conference
attendees to learn about information security's most important issues through
interactions with peers, luminaries and emerging and established companies.
http://p.sf.net/sfu/rsaconf-dev2dev
_______________________________________________
Cygwin-ports-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cygwin-ports-general

Reply via email to