On 20 Jul 2011, at 12:54, Stephan Beal wrote:
> 
> On Wed, Jul 20, 2011 at 11:16 AM, Ben Summers <[email protected]> wrote:
> 
>> I'm concerned that typing 'make' on obscure platforms builds subtly broken
>> binaries. For example, on Solaris, it'll build one which truncates your
>> passwords to 8 characters.
>> 
> 
> That's not broken, though - that's the feature set provided by the OS.
> Admittedly, it's semantically broken but it's not technically broken. The
> bug is in Sun's heavy reliance on 1st-semester Chinese I.T. students to
> write their most central OS software (how else can one explain the CLI
> interface of SunCluster 3.1 and earlier?), and not fossil.

I think this is a side effect of the binary compatibility guarantee, which 
means getpass() can't return more than 8 characters to avoid breaking binaries 
from the Solaris 2 era. getpassphrase() is provided for new applications. The 
autosetup scripts check for this, and if it's available, it'll be used.

I had terrible problems getting fossil to work, because it was silently 
truncating my 10 character passwords to 8 and I couldn't authenticate with the 
server. Regardless of the reasons for this breakage, it's an extremely bad user 
experience.

However, I'm a little unclear about what you're proposing. Are you suggesting 
that fossil should only support majority operating systems, or that it's 
desirable to produce binaries which almost work but will infuriate people who 
try to use them?

(For clarity: I'm perfectly happy to continue making fossil work on Solaris, 
and I'm not expecting anyone else to do anything about it.)

> 
> I have also corrected the documentation. Suggesting people type
>> "./configure; make" will just use the default Makefile on the platforms
>> where it really matters! You need to use the explicit "./configure; make -f
>> GNUmakefile" to pick up the autosetup generated Makefile.
>> 
> 
> That is of course a problem, though. Perhaps we should rename the default
> makefile to Makefile.unix (or similar). Since GNU make will look for
> "GNUMakefile" by default, we could then keep the documentation (and
> convention) that './configure && make' will work as-is for GNU platforms
> resp. platforms where GNU make is used, but will fail with "makefile not
> found" for non-GNU make.

I agree that renaming the Makefiles would be sensible. However, I believe there 
is resistance to changing the build system if at all possible, hence, I made 
minimal changes.

Although being consistent on every platform and requiring "./configure && make" 
might be a reasonable solution.

Ben


--
http://bens.me.uk/



_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to