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
