On 06/07/2023 18:36, Andrew Schulman via Cygwin-apps wrote:
Recently I noticed that `cygport finish` has become really slow on some of my
package source trees. After I run for example
cygport libargp.cygport finish
it waits for about 5 minutes without any message to the console, before the
first "Removing work directory" message appears.
pstree shows that during this time cygport is waiting for chattr. In
/usr/bin/cygport I see:
if [ $OSTYPE = "cygwin" ]
then
chattr -fR +C ${workdir} >/dev/null 2>&1 || true
fi
which is trying to make the workdir case-sensitive.
Whatever the advantages of that are, it can take a long time. Would it be
possible to skip it at least in the case of "finish"? It seems silly to spend
all that time fixing up a directory tree that we then turn around and remove
with rm -rf.
For a long time, we've just been assuming that anyone using cygport has
case-sensitivity turned on somehow (as the build underling a cygport
might assume that it's present, as is normal on a unix)
So, the idea here is that we try to ensure it's on, at least for the
working directory.
Skipping it when 'finish' is used isn't right, because then 'finish all'
wouldn't work as desired. But yeah, it seems that this is in the wrong
place. I'll look into moving it.
I think there's possibly something else going wrong if it's taking 5
minutes, as that seems excessive.