Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] Manual.md: revamp explain_depends section.
@ 2020-07-22 19:38 ericonr
  2020-07-22 19:40 ` [PR PATCH] [Updated] " ericonr
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: ericonr @ 2020-07-22 19:38 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 387 bytes --]

There is a new pull request by ericonr against master on the void-packages repository

https://github.com/ericonr/void-packages dbusr
https://github.com/void-linux/void-packages/pull/23746

Manual.md: revamp explain_depends section.
Add useful examples of checkdepends that might not be obvious.

A patch file from https://github.com/void-linux/void-packages/pull/23746.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-dbusr-23746.patch --]
[-- Type: text/x-diff, Size: 4882 bytes --]

From dec679df08184bd5e486f95d40f4030eef9416aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Wed, 22 Jul 2020 16:36:59 -0300
Subject: [PATCH] Manual.md: revamp explain_depends section.

Add useful examples of checkdepends that might not be obvious.
---
 Manual.md | 73 ++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 43 insertions(+), 30 deletions(-)

diff --git a/Manual.md b/Manual.md
index 5b49dc5ddd4..61eeccb1f75 100644
--- a/Manual.md
+++ b/Manual.md
@@ -708,36 +708,49 @@ Examples:
 	```
 
 <a id="explain_depends"></a>
-#### About the many types of `depends` variable.
-
-So far we have listed four types of `depends`, there are `hostmakedepends`,
-`makedepends`, `checkdepends` and plain old `depends`.To understand the difference
-between them, understand this: Void Linux cross compiles for many arches.
-Sometimes in a build process, certain programs must be run, for example `yacc`, or the
-compiler itself for a C program. Those programs get put in `hostmakedepends`.
-When the build runs, those will be installed on the host to help the build
-complete.
-
-Then there are those things for which a package either links against or
-includes header files. These are `makedepends`, and regardless of the
-architecture of the build machine, the architecture of the target machine must
-be used. Typically the `makedepends` will be the only one of the three types of
-`depends` to include `-devel` packages, and typically only `-devel` packages.
-
-Then there are those things that are required for a package to run its testsuite
-`dejagnu` or libraries it must link to when building test binaries like `cmocka`.
-These are `checkdepends` and they are installed like they are part of `makedepends`.
-the difference is that they are only installed when `XBPS_CHECK_PKGS` is defined.
-
-The final variable, `depends`, is for those things the package needs at
-runtime and without which is unusable, and that xbps can't auto-detect.
-These are not all the packages the package needs at runtime, but only those
-that are not linked against. This variable is most useful for non-compiled
-programs.
-
-Finally, as a general rule, if something compiles the exact same way whether or
-not you add a particular package to `makedepends` or `hostmakedepends`, it
-shouldn't be added.
+#### About the many types of `depends` variables
+
+So far, we have listed four types of `depends` variables: `hostmakedepends`,
+`makedepends`, `checkdepends` and `depends`. These different kinds of variables
+are necessary because `xbps-src` supports cross compilation and to avoid
+installing unecessary packages in the build environment.
+
+During a build process, there are programs that must be _run_ on the host, such
+as `yacc` or the C compiler. The packages that contain these programs should be
+listed in `hostmakedepends`, and will be installed on the host when building the
+target package. Some of these packages are dependencies of the `base-chroot`
+package, and don't need to be listed.
+
+The target package can also depend on other packages for libraries to link
+against or header files. These packages should be listed in `makedepends`, and
+regardless of the architecture of the build machine, the version that will be
+installed is the one from the target machine. Usually, `makedepends` is the only
+one to include `-devel` packages - except for cases when the `-devel` packages
+include tools necessary for building the target package - and typically only
+`-devel` packages.
+
+Furthermore, the target package might require specific dependencies in order to
+run its test suite or libraries that are linked into its test binaries. These
+dependencies should be listed in `checkdepends`, and, if `XBPS_CHECK_PKGS` is
+set or the `-Q` option is passed to `xbps-src`, will be installed as if they
+were part of `makedepends`. Some dependencies that can be included in
+`checkdepends` are:
+
+- `dejagnu`: used for some GNU projects
+- `cmocka-devel`: linked into test binaries
+- `dbus`: enables running `dbus-run-session <test-command>` to provide a D-Bus
+  session for applications that need it
+- `git`: some test suites run the `git` command
+
+Finally, a package may require certain dependencies at runtime, without which it
+is unusable. These dependencies, when they aren't detected automatically by
+XBPS, should be listed in `depends`. This is mostly relevant for non-compiled
+programs, such as Perl and Python ones, and programs that use `dlopen(3)`
+instead of dynamically linking against the libraries on which they depend.
+
+Finally, as a general rule, if a package is built the exact same way whether or
+not a particular package is present in `makedepends` or `hostmakedepends`, that
+package shouldn't be added as a build time dependency.
 
 <a id="repositories"></a>
 #### Repositories

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2020-11-22  5:09 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-22 19:38 [PR PATCH] Manual.md: revamp explain_depends section ericonr
2020-07-22 19:40 ` [PR PATCH] [Updated] " ericonr
2020-07-22 20:51 ` ericonr
2020-08-16 12:41 ` [PR REVIEW] " Piraty
2020-08-16 12:41 ` Piraty
2020-08-16 12:41 ` Piraty
2020-08-16 12:41 ` Piraty
2020-08-16 12:41 ` Piraty
2020-08-16 12:41 ` Piraty
2020-08-16 12:41 ` Piraty
2020-08-16 12:41 ` Piraty
2020-08-16 15:17 ` ericonr
2020-08-16 15:23 ` ericonr
2020-08-16 15:27 ` ericonr
2020-08-16 15:29 ` [PR PATCH] [Updated] " ericonr
2020-11-22  5:09 ` [PR PATCH] [Merged]: " the-maldridge

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).