Re: one of those annoying little things

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

 



Please make your subject more specific next time.  Anything can be an
annoying little thing :).

On Wed, 2022-08-24 at 00:21 -0400, Dennis Clarke via Gcc-help wrote:
> 
> Dear ALL :
> 
>      Not sure who else have been doing bootstraps on machines wherein the
> common sense thing to do is protect the source tree. What I mean is that
> I extract the gcc 12.2.0 tarball of joy as the root user.

To whoever reading this: if you really want to do that, remember to use
--no-same-owner when you invoke tar to extract the tarball.  Or you may
leave some files or directories with UID = (the UID of whoever created
this tarball on his system).

/* snip */

> if makeinfo --split-size=5000000 --split-size=5000000 
> --split-size=5000000  --enable-encoding -I ../../../gcc-
> 12.2.0/mpfr/doc \
>   -o ../../../gcc-12.2.0/mpfr/doc/mpfr.info 
> ../../../gcc-12.2.0/mpfr/doc/mpfr.texi; \
> then \
>    rc=0; \
>    CDPATH="${ZSH_VERSION+.}:" && cd ../../../gcc-12.2.0/mpfr/doc; \
> else \
>    rc=$?; \
>    CDPATH="${ZSH_VERSION+.}:" && cd ../../../gcc-12.2.0/mpfr/doc && \
>    $restore $backupdir/* `echo 
> "./../../../gcc-12.2.0/mpfr/doc/mpfr.info" | sed 's|[^/]*$||'`; \
> fi; \
> rm -rf $backupdir; exit $rc
> mkdir: .am388: Permission denied
> ../../../gcc-12.2.0/mpfr/doc/mpfr.info: Permission denied

> Turns out, wild, but that directory for the mpfr doc stuff has files
> that no user has rights to other than root. That has to be a bug right?
> Could be the mpfr guys but hey this seems weird.

In MPFR Makefile.in there is:

$(srcdir)/mpfr.info: mpfr.texi $(mpfr_TEXINFOS)

and

mpfr_TEXINFOS = texinfo.tex fdl.texi

So mpfr.info is only regenerated if it does not exist, or its timestamp
is older than mpfr.texi, texinfo.tex, or fdl.texi.  This should not
happen if you extract mpfr from a release tarball, where:

2019-01-07 21:49 fdl.texi
2020-07-10 19:59 mpfr.info
2020-07-10 19:52 mpfr.texi
2020-04-14 19:12 texinfo.tex

We can see mpfr.info is already up-to-date so make should not regenerate
it.

Maybe your patch changed mpfr.texi (you forgot to add the URL of "[1]"
so I cannot know :), or you've messed up the timestamp of those files
somehow (one notable case: using "cp -r" to copy the MPFR source tree
can reset the timestamps to current system time).

I'll not call this a bug: if you, as a distributor, want to distribute
the MPFR source code to others, you should use "make dist" to generate a
tarball and distribute it, instead of providing others a "dirty" tree. 
This is how a package using autoconf/automake is distributed.

[GCC itself is an exception: we version control the generated files to
be included in the release tarball, instead of using "make dist" to
generate them on release.  But our approach for GCC also causes a
different kind of nasty issues (for example, if a generated file is
merged by git during a "git cherry-pick", the content will be likely
incorrect).]

And no matter it's a bug or not, there is nothing we can do on GCC side
because MPFR is not a part of GCC.

-- 
Xi Ruoyao <xry111@xxxxxxxxxxx>
School of Aerospace Science and Technology, Xidian University




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux