Re: Automatic detection of unused BuildRequires

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

 



On Wed, 2024-07-03 at 18:02 +0200, Marián Konček wrote:
> > As many of you know, as packages change, so do their BuildRequires.
> > In 
> > the current state, maintaining them requires some manual work from
> > the 
> > maintainer.
> > 
> > 1. So I got around the idea of a simple tool that checks file
> > accesses 
> > during the build and using RPM queries, detects whether some
> > package's 
> > files are not accessed at all therefore the package is not needed
> > for
> > the build. To my knowledge there is no such project. 

yes , no such project and I also think that project may be useful .

I notice with [1] and with new [2] we can check if src requires
something-devel  and the binary don't requires the libsomthing.so.etc 

to exemplify (result in attachment) :
./dep_checker.py --max_deps 0 glib gtk+ libbonoboui libgnome libgnomeui
GConf2  

we got may cases of 
somepackge.src requires GConf2-devel but his bin doesn't requires
libgconf-2.so

I can deduce that we can remove the "Builrequires: GConf2-devel" . But
we have other cases that is not true , like headers packages and things
that used scripts and more cases that I don't recall ATM . So I did't
find any formula or linear method , but I hope that dep_checker.py can
help you , I hadn't finish the development yet ...


[1] 
https://pagure.io/releng/blob/main/f/scripts/orphaned-packages-process
[2]
https://pagure.io/fork/sergiomb/releng/blob/main/f/scripts/orphaned-packages-process/dep_checker.py

> > The project is
> > here: https://github.com/mkoncek/unbreq
> > 
> > It may not be completely reliable, but it also may be good enough
> > to 
> > catch simple mistakes.
> > 
> > 2. At least in the case of maven build system, this tool does not
> > help 
> > with `mvn(foo:bar)` dependencies, as maven unconditionally reads
> > all
> > the 
> > files present in /usr/share/maven-metadata, from which it deduces
> > the
> > associations between jars and artifact coordinates. I imagine other
> > build systems employ a similar strategy.
> > 
> > 3. In the case of maven, we have a manual tool: xmvn-builddep,
> > which 
> > reads the build.log and constructs the actual BuildRequires from
> > it, 
> > using knowledge about the build procedure. This could be used as an
> > additional step of this tool, having similar tools for other
> > languages.
> > 
> > Ultimately, I am interested in the possibility of having automated 
> > unused BuildRequires detection as part of rpmbuild / mockbuild.
> > 


> > -- 
> > Marián Konček
> > 

-- 
Sérgio M. B.
Report started at 2024-07-03 18:46:13 UTC


Depending on: GConf2 (34)
	GtkAda
		GtkAda-2.24.2-48.fc40.src requires GConf2-devel = 3.2.6-41.fc40

	alexandria
		alexandria-0.7.9-7.fc40.noarch requires GConf2 = 3.2.6-41.fc40
		alexandria-0.7.9-7.fc40.src requires GConf2 = 3.2.6-41.fc40

	apcupsd
		apcupsd-3.14.14-31.fc40.src requires GConf2-devel = 3.2.6-41.fc40
		apcupsd-gui-3.14.14-31.fc40.x86_64 requires libgconf-2.so.4()(64bit)

	cdcollect
		cdcollect-0.6.0-42.fc40.x86_64 requires GConf2 = 3.2.6-41.fc40

	cdrdao
		cdrdao-1.2.5-9.fc40.src requires GConf2-devel = 3.2.6-41.fc40

	evolution-rspam
		evolution-rspam-0.6.0-43.fc40.src requires GConf2-devel = 3.2.6-41.fc40

	florence
		florence-0.6.3-23.fc41.src requires GConf2-devel = 3.2.6-41.fc40

	gconf-editor
		gconf-editor-3.0.1-29.fc40.src requires GConf2-devel = 3.2.6-41.fc40
		gconf-editor-3.0.1-29.fc40.x86_64 requires GConf2 = 3.2.6-41.fc40, libgconf-2.so.4()(64bit)

	gconfmm26
		gconfmm26-2.28.3-74.fc41.i686 requires libgconf-2.so.4
		gconfmm26-2.28.3-74.fc41.src requires pkgconfig(gconf-2.0) = 3.2.6
		gconfmm26-2.28.3-74.fc41.x86_64 requires libgconf-2.so.4()(64bit)
		gconfmm26-devel-2.28.3-74.fc41.i686 requires GConf2-devel(x86-32) = 3.2.6-41.fc40, pkgconfig(gconf-2.0) = 3.2.6
		gconfmm26-devel-2.28.3-74.fc41.x86_64 requires GConf2-devel(x86-64) = 3.2.6-41.fc40, pkgconfig(gconf-2.0) = 3.2.6

	geany-plugins
		geany-plugins-2.0-3.fc40.src requires GConf2-devel = 3.2.6-41.fc40

	gnome-do
		gnome-do-0.95.3-27.fc40.src requires GConf2-devel = 3.2.6-41.fc40
		gnome-do-0.95.3-27.fc40.x86_64 requires GConf2 = 3.2.6-41.fc40

	gnome-phone-manager
		gnome-phone-manager-0.69-45.fc40.src requires GConf2-devel = 3.2.6-41.fc40
		gnome-phone-manager-0.69-45.fc40.x86_64 requires libgconf-2.so.4()(64bit)

	gnome-sharp
		gnome-sharp-2.24.2-34.fc40.x86_64 requires libgconf-2.so.4()(64bit)

	gnome-vfs2
		gnome-vfs2-2.24.4-45.fc40.i686 requires libgconf-2.so.4
		gnome-vfs2-2.24.4-45.fc40.src requires GConf2-devel = 3.2.6-41.fc40
		gnome-vfs2-2.24.4-45.fc40.x86_64 requires libgconf-2.so.4()(64bit)
		gnome-vfs2-common-2.24.4-45.fc40.noarch requires GConf2 = 3.2.6-41.fc40
		gnome-vfs2-devel-2.24.4-45.fc40.i686 requires pkgconfig(gconf-2.0) = 3.2.6
		gnome-vfs2-devel-2.24.4-45.fc40.x86_64 requires pkgconfig(gconf-2.0) = 3.2.6
		gnome-vfs2-smb-2.24.4-45.fc40.x86_64 requires libgconf-2.so.4()(64bit)

	gnome-vfs2-monikers
		gnome-vfs2-monikers-2.15.3-37.fc40.src requires GConf2-devel = 3.2.6-41.fc40
		gnome-vfs2-monikers-2.15.3-37.fc40.x86_64 requires libgconf-2.so.4()(64bit)

	gphotoframe
		gphotoframe-2.0.2-27.hg2084299dffb6.fc41.noarch requires GConf2 = 3.2.6-41.fc40
		gphotoframe-2.0.2-27.hg2084299dffb6.fc41.src requires GConf2 = 3.2.6-41.fc40

	gtksourceview2
		gtksourceview2-2.11.2-42.fc40.src requires GConf2-devel = 3.2.6-41.fc40

	icedtea-web
		icedtea-web-1.8.8-5.fc41.x86_64 requires GConf2 = 3.2.6-41.fc40

	ignuit
		ignuit-2.24.3-16.fc40.src requires GConf2 = 3.2.6-41.fc40
		ignuit-2.24.3-16.fc40.x86_64 requires GConf2 = 3.2.6-41.fc40, libgconf-2.so.4()(64bit)

	libbonoboui
		libbonoboui-2.24.5-25.fc39.i686 requires libgconf-2.so.4
		libbonoboui-2.24.5-25.fc39.x86_64 requires libgconf-2.so.4()(64bit)

	libgnome
		libgnome-2.32.1-30.fc40.i686 requires GConf2 = 3.2.6-41.fc40, libgconf-2.so.4
		libgnome-2.32.1-30.fc40.src requires GConf2-devel = 3.2.6-41.fc40
		libgnome-2.32.1-30.fc40.x86_64 requires GConf2 = 3.2.6-41.fc40, libgconf-2.so.4()(64bit)
		libgnome-devel-2.32.1-30.fc40.i686 requires pkgconfig(gconf-2.0) = 3.2.6
		libgnome-devel-2.32.1-30.fc40.x86_64 requires pkgconfig(gconf-2.0) = 3.2.6

	libgnomeui
		libgnomeui-2.24.5-32.fc40.i686 requires libgconf-2.so.4
		libgnomeui-2.24.5-32.fc40.src requires GConf2-devel = 3.2.6-41.fc40
		libgnomeui-2.24.5-32.fc40.x86_64 requires libgconf-2.so.4()(64bit)
		libgnomeui-devel-2.24.5-32.fc40.i686 requires pkgconfig(gconf-2.0) = 3.2.6
		libgnomeui-devel-2.24.5-32.fc40.x86_64 requires pkgconfig(gconf-2.0) = 3.2.6

	rawstudio
		librawstudio-2.1-0.37.20210527.gitc140a5e.s20231112gitc753388.fc41.i686 requires libgconf-2.so.4
		librawstudio-2.1-0.37.20210527.gitc140a5e.s20231112gitc753388.fc41.x86_64 requires libgconf-2.so.4()(64bit)
		rawstudio-2.1-0.37.20210527.gitc140a5e.s20231112gitc753388.fc41.src requires pkgconfig(gconf-2.0) = 3.2.6
		rawstudio-2.1-0.37.20210527.gitc140a5e.s20231112gitc753388.fc41.x86_64 requires libgconf-2.so.4()(64bit)

	mail-notification
		mail-notification-5.4-111.git.9ae8768.fc40.src requires GConf2 = 3.2.6-41.fc40, GConf2-devel = 3.2.6-41.fc40
		mail-notification-5.4-111.git.9ae8768.fc40.x86_64 requires GConf2 = 3.2.6-41.fc40, libgconf-2.so.4()(64bit)

	moserial
		moserial-3.0.21-8.fc41.src requires GConf2-devel = 3.2.6-41.fc40

	perl-Gnome2-GConf
		perl-Gnome2-GConf-1.047-13.fc41.src requires pkgconfig(gconf-2.0) = 3.2.6
		perl-Gnome2-GConf-1.047-13.fc41.x86_64 requires libgconf-2.so.4()(64bit)

	redshift
		redshift-1.12-22.fc41.src requires GConf2-devel = 3.2.6-41.fc40

	ruby-gnome2
		ruby-gconf2-0.90.4-20.fc41.x86_64 requires libgconf-2.so.4()(64bit)
		ruby-gnome2-0.90.4-20.fc41.src requires GConf2-devel = 3.2.6-41.fc40

	sirius
		sirius-0.8.0-46.fc40.x86_64 requires libgconf-2.so.4()(64bit)

	sugar
		sugar-0.121-2.fc41.src requires GConf2-devel = 3.2.6-41.fc40

	teg
		teg-0.12.0-7.fc40.x86_64 requires GConf2 = 3.2.6-41.fc40

	tomboy
		tomboy-1.15.9-20.fc40.src requires GConf2 = 3.2.6-41.fc40
		tomboy-1.15.9-20.fc40.x86_64 requires GConf2 = 3.2.6-41.fc40

	wallpapoz
		wallpapoz-0.6.2-16.fc40.noarch requires GConf2 = 3.2.6-41.fc40

	xoo
		xoo-0.8-23.fc40.src requires GConf2-devel = 3.2.6-41.fc40
		xoo-0.8-23.fc40.x86_64 requires libgconf-2.so.4()(64bit)

	Too many dependencies for GConf2, not all listed here

Depending on: glib (4)
	bubblemon
		bubblemon-1.46-36.fc40.x86_64 requires libglib-1.2.so.0()(64bit), libgmodule-1.2.so.0()(64bit)

	gtk+
		gtk+-1:1.2.10-107.fc40.i686 requires libglib-1.2.so.0, libgmodule-1.2.so.0
		gtk+-1:1.2.10-107.fc40.src requires glib-devel = 1:1.2.10-73.fc40
		gtk+-1:1.2.10-107.fc40.x86_64 requires libglib-1.2.so.0()(64bit), libgmodule-1.2.so.0()(64bit)
		gtk+-devel-1:1.2.10-107.fc40.i686 requires glib-devel(x86-32) = 1:1.2.10-73.fc40, pkgconfig(glib) = 1.2.10
		gtk+-devel-1:1.2.10-107.fc40.x86_64 requires glib-devel(x86-64) = 1:1.2.10-73.fc40, pkgconfig(glib) = 1.2.10

	manedit
		manedit-1.2.1-32.fc40.x86_64 requires libglib-1.2.so.0()(64bit), libgmodule-1.2.so.0()(64bit)

	xconvers
		xconvers-0.8.3-33.fc40.x86_64 requires libglib-1.2.so.0()(64bit)

	Too many dependencies for glib, not all listed here

Depending on: gtk+ (3)
	bubblemon
		bubblemon-1.46-36.fc40.src requires gtk+-devel = 1:1.2.10-107.fc40
		bubblemon-1.46-36.fc40.x86_64 requires libgdk-1.2.so.0()(64bit)

	manedit
		manedit-1.2.1-32.fc40.src requires gtk+-devel = 1:1.2.10-107.fc40
		manedit-1.2.1-32.fc40.x86_64 requires libgdk-1.2.so.0()(64bit), libgtk-1.2.so.0()(64bit)

	xconvers
		xconvers-0.8.3-33.fc40.src requires gtk+-devel = 1:1.2.10-107.fc40
		xconvers-0.8.3-33.fc40.x86_64 requires libgdk-1.2.so.0()(64bit), libgtk-1.2.so.0()(64bit)

	Too many dependencies for gtk+, not all listed here

Depending on: libbonoboui (6)
	GtkAda
		GtkAda-2.24.2-48.fc40.src requires libbonoboui-devel = 2.24.5-25.fc39
		GtkAda-gnome-2.24.2-48.fc40.i686 requires libbonoboui-2.so.0
		GtkAda-gnome-2.24.2-48.fc40.x86_64 requires libbonoboui-2.so.0()(64bit)

	ghemical
		ghemical-3.0.0-25.fc40.src requires libbonoboui-devel = 2.24.5-25.fc39

	gnome-sharp
		gnome-sharp-2.24.2-34.fc40.x86_64 requires libbonoboui-2.so.0()(64bit)

	libgnomeui
		libgnomeui-2.24.5-32.fc40.i686 requires libbonoboui-2.so.0
		libgnomeui-2.24.5-32.fc40.src requires libbonoboui-devel = 2.24.5-25.fc39
		libgnomeui-2.24.5-32.fc40.x86_64 requires libbonoboui-2.so.0()(64bit)
		libgnomeui-devel-2.24.5-32.fc40.i686 requires pkgconfig(libbonoboui-2.0) = 2.24.5
		libgnomeui-devel-2.24.5-32.fc40.x86_64 requires pkgconfig(libbonoboui-2.0) = 2.24.5

	perl-Gnome2
		perl-Gnome2-1.048-14.fc41.x86_64 requires libbonoboui-2.so.0()(64bit)

	ruby-gnome2
		ruby-bonoboui2-0.90.4-20.fc41.x86_64 requires libbonoboui-2.so.0()(64bit)
		ruby-gnome2-0.90.4-20.fc41.src requires libbonoboui-devel = 2.24.5-25.fc39

	Too many dependencies for libbonoboui, not all listed here

Depending on: libgnome (15)
	GtkAda
		GtkAda-2.24.2-48.fc40.src requires libgnome-devel = 2.32.1-30.fc40

	cbrpager
		cbrpager-0.9.22-31.fc40.x86_64 requires libgnome-2.so.0()(64bit)

	cellwriter
		cellwriter-1.3.6-9.fc40.src requires libgnome-devel = 2.32.1-30.fc40

	gnome-sharp
		gnome-sharp-2.24.2-34.fc40.x86_64 requires libgnome-2.so.0()(64bit)

	grhino
		grhino-0.16.1-19.fc40.x86_64 requires libgnome-2.so.0()(64bit)

	ignuit
		ignuit-2.24.3-16.fc40.x86_64 requires libgnome-2.so.0()(64bit)

	libbonoboui
		libbonoboui-2.24.5-25.fc39.i686 requires libgnome-2.so.0
		libbonoboui-2.24.5-25.fc39.src requires libgnome-devel = 2.32.1-30.fc40
		libbonoboui-2.24.5-25.fc39.x86_64 requires libgnome-2.so.0()(64bit)
		libbonoboui-devel-2.24.5-25.fc39.i686 requires libgnome-2.so.0, libgnome-devel = 2.32.1-30.fc40, pkgconfig(libgnome-2.0) = 2.32.1
		libbonoboui-devel-2.24.5-25.fc39.x86_64 requires libgnome-2.so.0()(64bit), libgnome-devel = 2.32.1-30.fc40, pkgconfig(libgnome-2.0) = 2.32.1

	libgnomeui
		libgnomeui-2.24.5-32.fc40.i686 requires libgnome-2.so.0
		libgnomeui-2.24.5-32.fc40.src requires libgnome-devel = 2.32.1-30.fc40
		libgnomeui-2.24.5-32.fc40.x86_64 requires libgnome-2.so.0()(64bit)
		libgnomeui-devel-2.24.5-32.fc40.i686 requires pkgconfig(libgnome-2.0) = 2.32.1
		libgnomeui-devel-2.24.5-32.fc40.x86_64 requires pkgconfig(libgnome-2.0) = 2.32.1

	linsmith
		linsmith-0.99.33-7.fc40.x86_64 requires libgnome-2.so.0()(64bit)

	mail-notification
		mail-notification-5.4-111.git.9ae8768.fc40.src requires libgnome-devel = 2.32.1-30.fc40
		mail-notification-5.4-111.git.9ae8768.fc40.x86_64 requires libgnome-2.so.0()(64bit)

	perl-Gnome2
		perl-Gnome2-1.048-14.fc41.x86_64 requires libgnome-2.so.0()(64bit)

	pioneers
		pioneers-15.6-9.fc40.src requires libgnome-devel = 2.32.1-30.fc40

	ruby-gnome2
		ruby-bonoboui2-0.90.4-20.fc41.x86_64 requires libgnome-2.so.0()(64bit)
		ruby-gnome2-0.90.4-20.fc41.src requires libgnome-devel = 2.32.1-30.fc40
		ruby-gnome2-0.90.4-20.fc41.x86_64 requires libgnome-2.so.0()(64bit)

	sirius
		sirius-0.8.0-46.fc40.x86_64 requires libgnome-2.so.0()(64bit)

	verbiste
		verbiste-gnome-0.1.48-3.fc40.x86_64 requires libgnome-2.so.0()(64bit)

	Too many dependencies for libgnome, not all listed here

Depending on: libgnomeui (15)
	GtkAda
		GtkAda-2.24.2-48.fc40.src requires libgnomeui-devel = 2.24.5-32.fc40
		GtkAda-gnome-2.24.2-48.fc40.i686 requires libgnomeui-2.so.0
		GtkAda-gnome-2.24.2-48.fc40.x86_64 requires libgnomeui-2.so.0()(64bit)

	cairo-dock-plug-ins
		cairo-dock-plug-ins-3.5.99^20240501git9901f7d-2.fc41.src requires pkgconfig(libgnomeui-2.0) = 2.24.5

	cbrpager
		cbrpager-0.9.22-31.fc40.src requires pkgconfig(libgnomeui-2.0) = 2.24.5
		cbrpager-0.9.22-31.fc40.x86_64 requires libgnomeui-2.so.0()(64bit)

	gnome-sharp
		gnome-sharp-2.24.2-34.fc40.src requires libgnomeui-devel = 2.24.5-32.fc40
		gnome-sharp-2.24.2-34.fc40.x86_64 requires libgnomeui-2.so.0()(64bit)

	gretl
		gretl-2024b-1.fc41.src requires libgnomeui-devel = 2.24.5-32.fc40

	grhino
		grhino-0.16.1-19.fc40.src requires libgnomeui-devel = 2.24.5-32.fc40
		grhino-0.16.1-19.fc40.x86_64 requires libgnomeui-2.so.0()(64bit)

	ignuit
		ignuit-2.24.3-16.fc40.src requires libgnomeui-devel = 2.24.5-32.fc40
		ignuit-2.24.3-16.fc40.x86_64 requires libgnomeui-2.so.0()(64bit)

	linsmith
		linsmith-0.99.33-7.fc40.src requires libgnomeui-devel = 2.24.5-32.fc40
		linsmith-0.99.33-7.fc40.x86_64 requires libgnomeui-2.so.0()(64bit)

	perl-Gnome2
		perl-Gnome2-1.048-14.fc41.src requires libgnomeui-devel = 2.24.5-32.fc40
		perl-Gnome2-1.048-14.fc41.x86_64 requires libgnomeui-2.so.0()(64bit)

	ruby-gnome2
		ruby-gnome2-0.90.4-20.fc41.src requires libgnomeui-devel = 2.24.5-32.fc40
		ruby-gnome2-0.90.4-20.fc41.x86_64 requires libgnomeui-2.so.0()(64bit)

	sirius
		sirius-0.8.0-46.fc40.src requires libgnomeui-devel = 2.24.5-32.fc40
		sirius-0.8.0-46.fc40.x86_64 requires libgnomeui-2.so.0()(64bit)

	ski
		ski-1.4.0-4.fc40.src requires libgnomeui-devel = 2.24.5-32.fc40

	teg
		teg-0.12.0-7.fc40.src requires libgnomeui-devel = 2.24.5-32.fc40

	tomoe-gtk
		tomoe-gtk-0.6.0-44.fc40.src requires libgnomeui-devel = 2.24.5-32.fc40
		tomoe-gtk-devel-0.6.0-44.fc40.i686 requires libgnomeui-devel = 2.24.5-32.fc40
		tomoe-gtk-devel-0.6.0-44.fc40.x86_64 requires libgnomeui-devel = 2.24.5-32.fc40

	verbiste
		verbiste-0.1.48-3.fc40.src requires libgnomeui-devel = 2.24.5-32.fc40
		verbiste-gnome-0.1.48-3.fc40.x86_64 requires libgnomeui-2.so.0()(64bit)

	Too many dependencies for libgnomeui, not all listed here


Depending packages (None) (50): GtkAda alexandria apcupsd bubblemon
    cairo-dock-plug-ins cbrpager cdcollect cdrdao cellwriter
    evolution-rspam florence gconf-editor gconfmm26 geany-plugins
    ghemical gnome-do gnome-phone-manager gnome-sharp gnome-vfs2
    gnome-vfs2-monikers gphotoframe gretl grhino gtk+ gtksourceview2
    icedtea-web ignuit libbonoboui libgnome libgnomeui linsmith
    mail-notification manedit moserial perl-Gnome2 perl-Gnome2-GConf
    pioneers rawstudio redshift ruby-gnome2 sirius ski sugar teg
    tomboy tomoe-gtk verbiste wallpapoz xconvers xoo


FTBFS (None) (6): glib gtk+ libbonoboui libgnome libgnomeui GConf2


FTBFS (None) (depended on) (6): glib gtk+ libbonoboui libgnome
    libgnomeui GConf2


FTBFS (None) (not depended on) (0):


Report finished at 2024-07-03 18:48:03 UTC
-- 
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux