Hello Yaakov & others of note, Currently each port is packaged for distro with each -src.tar.bz2 rooted at <package name in SVN>/., which creates the tar without any subdirectories. When setup unpacks the file, however, it all gets dumped into /usr/src/, and setup will overwrite files with the same name, which could happen with some injudicious choices in ports that are variants of g-b-s installs from main cygwin distro. That's the possible bug. The gripe is it also clutters the src dir so that it can be difficult to be sure that a particular file belongs to a specific port once you've got a 100 or so packages installed. What I'd like to see, though this would involve restructuring the SVN repository, is each port packaged as rooted at the top of the SVN tree.
Specifically, change /cygwin-ports/ports/trunk/<subdirs> to /cygwin-ports/ports/trunk/ports-src/<subdirs> and then change the packager so it creates the -src files with ./cygports/ as the top level dir inside the tar. Yes, I know adding the extra intermediate directory is a fairly expensive proposition, since each package for the ftp site would need to be regenerated, but it's a single rev and makes for better congruence between those input files and the output installations. Using the boxes app as an example, setup should unpack the file to /usr --/src ----/ports-src ------/apps --------/boxes ----------/boxes-1.1.src.tar.gz, or just .tar, preferably. ----------/boxes-1.1-1.cygport ----------/boxes-1.1-1.cygwin.patch ----------/boxes-1.1-1.src.patch One way to do this would be, generically: cd /<actual release build dir>/ create <package>-<ver>.tar.bz2 mkdir tmp/ports-src/<subdirs>/<package> # as an intermediate release directory, so unrelated SVN dirs aren't accessed by tar. cp from SVN, curl or wget, or create, the package files into tmp/ports-src/<subdirs>/<package>/ cd tmp tar <switches> ./* | bzip2 --output-file ../<package>-<ver>-src.tar.bz2 cd .. rmdir --force tmp cp <trunk or branch>/<package SVN dir>/setup.hint, any other files Upload <actual release build dir> to ftp repository Since there wouldn't be multiple .cygport files in the directory unpacked, the use instructions could change to cd /usr/src/ports-src/<package dir> cygport <command> cygport <other command> etc.; input file specification unnecessary Alternatively, you could use /cygports/ as a replacement for cygwinports/releases/ so the unpack matches the ftp directory, but the way suggested allows an SVN export of ports/trunk, or ports/branches/branch, to mirror the installed layout. Also, the SVN dirs mirror the setup.ini groups presented by setup, but without setup's ambiguity of allowing a package to appear in multiple groups. Also, the cygports package could default to, as extra root dirs, usr/src/ports-bld/<subdirs>, (build directory) usr/src/ports-pkg/<subdirs> (package staging, where <actual release build dir> would be), usr/src/ports-svn/<subdirs> (SVN checkout or export dirs) usr/src/ports-tst/<subdirs> (pristine install image for testing purposes) and similar for when the .cygport file is processed that keeps each port segregated until a user wants any binaries produced from package changes being tested merged into the general /bin or /lib directories. The reason just .tar is preferable, IMO, is that trying to bzip an already b- or g-zipped file leads to minimal package size reduction for network transfer at the expense of a significant increase in processing time for larger packages, or a lot of smaller packages, to run b/gunzip multiple times. Those worried about the /usr/src tree getting excessively large as a result can use the NTFS compress facilities on src/ and subdirs to cut the overhead significantly. That's all. Perhaps with cygports as the lead doing this it will provide an example for other package maintainers to adopt a site/type/package uniform prefixing convention in their -src packages, whether they use cygport or not. Hope to see it, Mark ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Cygwin-ports-general mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/cygwin-ports-general
