Opened 6 years ago

Closed 5 years ago

#1444 closed defect (invalid)

Chicken will not build from tarball if contents are placed in version control and then retrieved

Reported by: jrobbins Owned by:
Priority: major Milestone: someday
Component: build system Version: 4.13.0
Keywords: Cc:
Estimated difficulty:

Description

In short, if you extract the contents of your most recent release tarball, place it in some sort of version control (SVN or Git will do), and pull down the contents of the version control, that pulled-down version of Chicken will fail to build, even if the non-version-controlled build will succeed.

Attached is a script that can replicate the issue. I've tested it on several Ubuntu and Windows machines, and it happens on all of them (however, it did fail to cause an error on one Arch Linux machine I tested). The environment variable CHICKEN_PLATFORM controls what platform the script runs for (default is linux), and specifying the environment variable GIT will make it run with Git instead of SVN.

There are no differences between a normal and version controlled chicken folder (at least diff reports nothing), but building causes utils.c to state that, in the buggy case, it is bootstrapping when it should in fact not be. The permissions do not change when taken from version control, and while modification/access times do change when taken from version control, setting the atime/mtime back to what they should be does nothing.

Attachments (1)

chicken-svn-bug.sh (1.4 KB) - added by jrobbins 6 years ago.

Download all attachments as: .zip

Change History (2)

Changed 6 years ago by jrobbins

Attachment: chicken-svn-bug.sh added

comment:1 Changed 5 years ago by sjamaan

Resolution: invalid
Status: newclosed

I think this is normal, given that the timestamps will be reset when you make a fresh clone, so "make" gets confused and thinks that the .c files need to be regenerated from the .scm files.

Unless you think this analysis is incorrect, it's not a bug IMO.

Note: See TracTickets for help on using tickets.