From 3c26b1c7018ad1e179d0918fe0149edff8cda6de Mon Sep 17 00:00:00 2001 From: Florian Festi Date: Thu, 29 Apr 2021 09:58:05 +0200 Subject: [PATCH] Delete horribly outdated "documentation" about build dependencies --- doc/Makefile.am | 1 - doc/manual/builddependencies.md | 176 -------------------------------- doc/manual/index.md | 1 - 3 files changed, 178 deletions(-) delete mode 100644 doc/manual/builddependencies.md diff --git a/doc/Makefile.am b/doc/Makefile.am index f5cf7ffcd6..2105bbe563 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -80,7 +80,6 @@ manual/file_triggers.md \ manual/lua.md \ manual/more_dependencies.md \ manual/scriptlet_expansion.md \ -manual/builddependencies.md \ manual/buildroot.md \ manual/conditionalbuilds.md \ manual/dependencies.md \ diff --git a/doc/manual/builddependencies.md b/doc/manual/builddependencies.md deleted file mode 100644 index 98e5b64488..0000000000 --- a/doc/manual/builddependencies.md +++ /dev/null @@ -1,176 +0,0 @@ -# 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: - -``` - BuildPreReq: - BuildRequires: - BuildConflicts: -``` - -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: - -``` - 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 -``` - -``` -Aside: The dep perl wrapper is a "pig" only because it's exec'ing - rpm -qf - 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 :-) -``` - -Here's what's in yyy (\::\ format): - -``` - 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 -``` - -The information can be used to generate build prerequisites. What is still -needed is a sensible approach on - -``` - 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. -``` - -but that's up to individual packagers. diff --git a/doc/manual/index.md b/doc/manual/index.md index b51ee79a7a..ce317bc78f 100644 --- a/doc/manual/index.md +++ b/doc/manual/index.md @@ -23,7 +23,6 @@ * [Dependencies](dependencies.md) * [More on Dependencies](more_dependencies.md) * [Boolean Dependencies](boolean_dependencies.md) - * [Build Dependencies](builddependencies.md) * [Architecture Dependencies](arch_dependencies.md) * [Installation Order](tsort.md) * Install scriptlets