Gentoo Archives: gentoo-dev

From: Xi Shen <davidshen84@×××××.com>
To: Rui Huang <vowstar@×××××.com>
Cc: Andrew Ammerlaan <andrewammerlaan@g.o>, gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [ebuild] How to do make install while in compilation stage
Date: Mon, 11 Jul 2022 06:59:24
Message-Id: CANO68EP2iiQ7bVh-3yVbA4Tw5fPqsRYcSyzuWP_M-O930sMsYw@mail.gmail.com
1 Thanks a lot!
2
3 On Mon, 11 Jul 2022 at 16:18, Rui Huang <vowstar@×××××.com> wrote:
4
5 > Hi,
6 >
7 > The latest libnvidia-container-1.10.0 has been tested and committed to the
8 > dev branch of the ::guru overlay (waiting to be merged into the master
9 > branch)
10 >
11 >
12 > https://github.com/gentoo/guru/commit/9edb349a59c3479b53ffa4049e220ee223aeb0ec
13 >
14 > And the matching app-containers/nvidia-container-toolkit-1.10.0 has also
15 > been committed to the dev branch.
16 > After waiting for the merge, you can directly use the ebuild in the ::guru
17 > overlay.
18 >
19 >
20 > https://github.com/gentoo/guru/commit/350c753f97903397f5fe8f9c05f815007e339018
21 >
22 > Best regards,
23 > Huang Rui
24 >
25 > On Mon, 11 Jul 2022 at 12:35, Andrew Ammerlaan <andrewammerlaan@g.o>
26 > wrote:
27 >
28 >> Hi,
29 >>
30 >> On 11/07/2022 05:17, Xi Shen wrote:
31 >> > Hi,
32 >> >
33 >> > I am trying to create an ebuild file for
34 >> > https://github.com/NVIDIA/libnvidia-container
35 >> > <https://github.com/NVIDIA/libnvidia-container>. It has a few other
36 >> > dependencies which will be built by itself.
37 >>
38 >> Such an ebuild already exists in the ::guru overlay (maintainer in CC).
39 >> I see it is one version behind though. Feel free to bump it to the
40 >> latest version if you want, probably a simple copy and renaming of the
41 >> ebuild will do the trick.
42 >>
43 >> > My ebuild can download and compile those dependencies. But one of the
44 >> > dependency "libtirpc-1.3.2" needs to install itself in the temporary
45 >> > portage environment. Its Makefile allows me to pass in the "DESTDIR"
46 >> > variable which I passed in
47 >> >
48 >> "/var/tmp/portage/sys-libs/libnvidia-container-1.10.0/work/libnvidia-container-1.10.0/deps",
49 >>
50 >> > but when it installs, the package is installed to
51 >> >
52 >> "/var/tmp/portage/sys-libs/libnvidia-container-1.10.0/work/libnvidia-container-1.10.0/deps/var/tmp/portage/sys-libs/libnvidia-container-1.10.0/work/libnvidia-container-1.10.0/deps/usr/local",
53 >>
54 >> > the working director got repeated after the "deps" directory.
55 >> >
56 >> > I checked the makefile, but could not figure out where that path got
57 >> > replicated. I guess when running inside the portage build environment,
58 >> > there's some "chroot" trick that prevents packages from writing the
59 >> root
60 >> > file system.
61 >> >
62 >> > So I want to ask if I need to do a "make install" during compilation,
63 >> > how should I pass the destination directory?
64 >>
65 >> Don't try to install things to the installation directory (${ED}) during
66 >> the compile phase. If you really have something that insists on being
67 >> installed somewhere to complete the compilation, then install it to some
68 >> temporary directory, e.g. ${T} and then if necessary copy it from the
69 >> temporary directory into the installation directory during the install
70 >> phase. The ebuild in ::guru seems to solve your problem with a bunch of
71 >> patches, which I think is a better solution.
72 >>
73 >> Best regards,
74 >> Andrew
75 >>
76 >