Gentoo Archives: gentoo-commits

From: "Ulrich Müller" <ulm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/devmanual:master commit in: general-concepts/dependencies/
Date: Mon, 25 May 2020 15:43:32
Message-Id: 1589022379.3dc3be9929eaa97576882ab23ac02d9f51368f2d.ulm@gentoo
1 commit: 3dc3be9929eaa97576882ab23ac02d9f51368f2d
2 Author: Ulrich Müller <ulm <AT> gentoo <DOT> org>
3 AuthorDate: Wed Apr 15 18:25:07 2020 +0000
4 Commit: Ulrich Müller <ulm <AT> gentoo <DOT> org>
5 CommitDate: Sat May 9 11:06:19 2020 +0000
6 URL: https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=3dc3be99
7
8 general-concepts/dependencies: Tips for checking dependencies.
9
10 This is taken from the Gentoo Developer Handbook, chapter
11 "Ebuild HOWTO" (proj/en/devrel/handbook/hb-guide-ebuild.xml),
12 section "Package Dependencies", subsection "Important Notes",
13 which in turn had been copied from chapter "Common ebuild Mistakes"
14 (proj/en/devrel/handbook/hb-guide-common-mistakes.xml), section
15 "Common Ebuild Writing Mistakes", subsection "DEPEND is incomplete".
16
17 Permission to reuse the CC-BY-SA-1.0 work under CC BY-SA version 2.0
18 or any later version of that license obtained from author plasmaroo
19 per e-mail on 2015-04-16, Message-ID
20 <CAGV+WHCJ61hvw7kh+Wz=uO2esihwc1dXsCWJJWeFAA7UOyyayw <AT> mail.gmail.com>.
21
22 Closes: https://bugs.gentoo.org/465764
23 Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>
24
25 general-concepts/dependencies/text.xml | 51 ++++++++++++++++++++++++++++++++++
26 1 file changed, 51 insertions(+)
27
28 diff --git a/general-concepts/dependencies/text.xml b/general-concepts/dependencies/text.xml
29 index 52d053e..319137f 100644
30 --- a/general-concepts/dependencies/text.xml
31 +++ b/general-concepts/dependencies/text.xml
32 @@ -573,6 +573,57 @@ DEPEND="
33 </subsection>
34 </section>
35
36 +<section>
37 +<title>Tips for Checking Dependencies</title>
38 +<body>
39 +
40 +<p>
41 +It is important to ensure that all the dependencies are complete for your
42 +package:
43 +</p>
44 +
45 +<dl>
46 + <dt>Look at installed binaries/libraries</dt>
47 + <dd>
48 + Use a tool like <c>scanelf -n</c> (from app-misc/pax-utils) or
49 + <c>objdump -p</c> (from sys-devel/binutils) to list <c>DT_NEEDED</c>
50 + entries
51 + </dd>
52 + <dt>Look in <c>configure.ac</c></dt>
53 + <dd>
54 + Look for checks for packages in here. Things to look out for are pkg-config
55 + checks or <c>AM_*</c> functions that check for a specific version.
56 + </dd>
57 + <dt>Look at included <c>.spec</c> files</dt>
58 + <dd>
59 + A good indication of dependencies is to look at the included <c>.spec</c>
60 + files for relevant deps. However, do not trust them to be the definitive
61 + complete list of dependencies.
62 + </dd>
63 + <dt>Look at the application/library website</dt>
64 + <dd>
65 + Check the application website for possible dependencies that they suggest
66 + are needed
67 + </dd>
68 + <dt>Read the <c>README</c> and <c>INSTALL</c> for the package</dt>
69 + <dd>
70 + They usually also contain useful information about building and installing
71 + packages
72 + </dd>
73 + <dt>
74 + Remember non-binary dependencies such as pkg-config, doc generation
75 + programs, etc.
76 + </dt>
77 + <dd>
78 + Usually the build process requires some dependencies such as intltool,
79 + libtool, pkg-config, doxygen, scrollkeeper, gtk-doc, etc. Make sure those
80 + are clearly stated.
81 + </dd>
82 +</dl>
83 +
84 +</body>
85 +</section>
86 +
87 <section>
88 <title>Implicit System Dependency</title>
89 <body>