[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

SML/NJ Packaging Difficulties



The smlnj package (the compiler) is implemented in sml and needs a
working implementation to build. Upstream, a set of pre-compiled
binary files (~4 MB each) are supplied for each platform.

When I initially supplied the smlnj package, I shortsightedly only
included the binary images required to build the i386 and powerpc
platforms, since those were the only platforms for which I had a
working runtime package.

Since then, I have received a patch to get the runtime working on
hppa, and am now confronted by my lack of forethought. Since the
boot files are binary, I cannot simply patch them on. Since the boot
files upstream only represent a subset of Debian supported
architectures (with the possibility of cross-compiling more in the
future), I cannot provide a definitive set of boot files.

I think this problem is a manifestation of bad design of this
package. I'm curious if anyone has dealt with similar problems
(platform-specific binaries required to build their package) or has
any ideas about a better design for such problems.

Here are some of my ideas:
1. Eliminate the need for the boot images, somehow creating them from
   scratch. A working sml implementation is needed since the compiler
   is written in sml. I don't see any reasonable way to implement this
   solution.
2. Download the appropriate boot image while building the package. I
   doubt this would be in the spirit of Debian Policy, if not a direct
   violation.
3. For each platform, create a source package, for example: smlnj-x86
   which would contain the appropriate boot image. These packages
   would provide smlnj as a virtual package. Seems the best solution.

I am not confident enough with the third idea to begin without seeing
if anyone has any other ideas, or an elaboration on one of mine.

Thanks in advance for any input.

Aaron



Reply to: