
Hello Guys, I have started developing Shipments in Cabal. It is working like it was discussed previously. When there are multiple *.cabal files, in the directory where the Setup.lhs lies, then they all will be build in dependency order. Packages that contain both executables and libraries are deprecated. In order to keep the backward compatibility the package description parser returns a list of PackageDescription. In the list there is one element for the library and one element for each executable. The package name for the executables is equal to the "executable" field in the corresponding stanza in the package description file. The trouble that I see is with the bindir, libdir, etc directory names. They all may depend on $pkgid value which is different for each package in the shipment. The consequence is that by default all binaries will be installed in their own directories. I think it is better to install them in common directory instead. It might be better if we were able to use $shipment variable instead of $pkgid. Another possible usage of is in "sdist" command. By default the "sdist" command is building the ${pkgid}.tar.gz archive. In presence of multiple packages I think it should build one common package: ${shipment}.tar.gz. The problem is how to guess the $shipment value. There are some ideas: a> The shipment name might be kept in some special file. b> In HSQL I am using package names like: hsql, hsql-odbc, hsql-mysql, ..... One solution is to use the common prefix in the package names as shipment name. When there is only one package, then the shipment name will be equal to the package name. The advantage is that, when the shipment name is encoded in the package name, then for the user it will be easier to find the package sources. The drawback is that we have to force some restriction on the package names. c> Another solution is to use the name of the top level directory. The drawback is that the user can't rename the top level directory. Any ideas? Cheers, Krasimir