Remove gcc, gcc-c++ and make from minimal build root

Dennis Gilmore dennis at ausil.us
Tue Jan 13 17:32:09 UTC 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Tue, 13 Jan 2015 17:54:03 +0100
Vít Ondruch <vondruch at redhat.com> wrote:

> Dne 13.1.2015 v 17:42 Ralf Corsepius napsal(a):
> > On 01/13/2015 12:06 PM, Vít Ondruch wrote:
> >> Dne 13.1.2015 v 08:12 Ralf Corsepius napsal(a):
> >>
> >> So we are even not able to tell how many packages are written in C
> >> or C++ in Fedora, since we do not have the BuildRequires speficied
> >> correctly.
> > Correct.
> >
> >> Because we have still the false feeling that everything is in
> >> C/C++, we regularly doing mass rebuilds and wasting resources (mass
> >> rebuild has also different advantages, but the rebuild due to
> >> rebased GCC is the major one).
> > There are other reasons for mass-rebuilds. Most prominently: Changes
> > inside of rpm and rpm-macros.
> >
> >> So lets try to find what is written in C/C++ by some different
> >> way. Is that true, that every package in C/C++ compiled using gcc
> >> depends on glibc? Then we can use this query to get the number of
> >> packages:
> >>
> >> $ repoquery --source --whatrequires 'libc.so.6(GLIBC_2.4)(64bit)'
> >> | sort | uniq | wc -l
> >> 2834
> >
> > Well, ... any explanation why this figure differs significantly
> 
> There are probably other reasons for the package to be arch dependent.
> First which comes to my mind is that somebody forgot to specify
> BuildArch: noarch.
> 
> > from this brute force estimate [1]:
> > # rpm -q --qf "%{SOURCERPM}\n" \
> >  -p rawhide/i386/os/Packages/*/*.i686.rpm 2>/dev/null | sort -u |
> > wc -l 7706
> 
> Otherwise interesting number. I'd say this is top estimate of number
> of affected packages, since it probably suffers the same issue as mine
> query, i.e. there are the same source packages, with different
> versions, hence they are not filtered out as duplicates.

your assumption there is not possible. mash the tool that makes the
rawhide repo froma  koji tag only includes the latest build. so there
is only one srpm for each package and never multiples.  ie
foo-1.1-1.fc22 and foo-1.2-1.fc22 will never exist in the same repo.
there will never be multiples of the source rpms and never multiples of
the binaries. if a sub package gets dropped we do not keep the old
version it just goes away.

So I have some numbers

rpm -qp --qf "%{arch}\n" rawhide/source/SRPMS/*/*rpm|grep -v noarch |wc
- -l
7742
rpm -qp --qf "%{arch}\n" rawhide/source/SRPMS/*/*rpm|grep noarch |wc -l
8488

so right now we have 8488 packages in rawhide that are noarch only and
7742 that are arch specific so in theory just over 50% of builds would
get a slight build time speedup with removing gcc gcc-c++. I would like
to exclude make because I know a number of noarch only builds use make
and regular makefiles. that will take checking out the entire
sourcetree unpacking everything and doing analysis of the contents of
the prepped tree to determine.

Of the 7742 that are arch specific, we do not know how many need to
have gcc or gcc-c++ installed in the buildroot for them to compile.
though we could likely look at the BuildRequires and make an educated
guess.

Dennis
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBAgAGBQJUtVadAAoJEH7ltONmPFDR770P/i/7Yih5BSV7RHmkQ3wDRO0V
urSr01+Kxbs4HmgBgtstgbgHpHbU6H5zusNJkrcOZdyPeKMnn1bHigVkl0C8Ccq1
pb735ndpiSag64XbkXOCF7AgdKHJtBsU/GGhnsok7KgrqsZq+IhTUzYdKWAcOYdh
OiasG6Pg4TUCmz2KxyFCJBGnda67HTGYszkVUXptYpKtZefWIyUMr+Mgmr4hXuLV
l//GGAZTBy1E9S7L2WBcp8he/qWoNxhnxPonLYdS98Qa4i//fVjCP5kfEVs7jBNb
3CXl3q0al0K/sdxmxeLwZVicWDfer9gxBwGg1/FFJBrX6v8CTx3n/SEqexnyC4j6
N9u7Rz68mTxLIUhjd0p4gxA13PsJHv2jcPS8zVC32XElov9x+zbStrPv2oBAyi6C
y55ZW5ITggvXCm5EEC5EPeRHHKQtPi6AwTtsdmZRWL7dAGskRiJaei/bNktMD+BI
xe5JlVpxJcvX+y/rMyLsYr26CPLgmj1Rvv2e3wJjiPduaUUwGLfucqYyvuohYkEX
AmIQVmkO43mPwJbzYXrMxo2PVhygUT1iR110xZdRnFw0WtOHuh3JUNu6eEwtG4Hf
ZNHAOfMlit2BS/l8M+BMCW6L3ODLGO7nhnrmespliQnCyc2kaEQPweodsmJlnC2C
1Ci+Tgp/4juEojCmGP0P
=E+V1
-----END PGP SIGNATURE-----


More information about the devel mailing list