Skip to content

V7 do not use debian packages#682

Merged
Cryogenics-CI merged 17 commits into
masterfrom
v7-do-not-use-debian-packages
Nov 21, 2023
Merged

V7 do not use debian packages#682
Cryogenics-CI merged 17 commits into
masterfrom
v7-do-not-use-debian-packages

Conversation

@nouseforaname
Copy link
Copy Markdown
Contributor

[#186451769]

we want to stop shipping stemcell line depending debs for this release. Debs have to be installed via pre-start scripts and this is not a great solution in a bosh world. This PR changes the packaging script for nfs-debs to build the required tools from source. at this point it is yet to be tested if everything works as expected since there is a lot of uncertainty which dependencies (e.g. we ship krb5 debs) have been added for what reason. The current state of the packaging script is based on https://www.linuxfromscratch.org/blfs/view/svn/basicnet/nfs-utils.html and contains the logic to compile all required but none of the optional dependencies as it assumes that the optional dependencies required for ldap / krb / nfs4 support apply to the server side tools contained in the nfs-utils.

nouseforaname and others added 14 commits November 15, 2023 08:44
[#186451769]

we want to stop shipping stemcell line depending debs for this release.
Debs have to be installed via pre-start scripts and this is not a great
solution in a bosh world. This PR changes the packaging script for nfs-debs
to build the required tools from source. at this point it is yet to be tested
if everything works as expected since there is a lot of uncertainty which
dependencies (e.g. we ship krb5 debs) have been added for what reason. The
current state of the packaging script is based on https://www.linuxfromscratch.org/blfs/view/svn/basicnet/nfs-utils.html
and contains the logic to compile all required but none of the optional dependencies
as it assumes that the optional dependencies required for ldap / krb / nfs4
support apply to the server side tools contained in the nfs-utils.
- This PR aims to test whether the Debian packages this release
  currently installs are really required in order for NFS to run
- Our preliminary investigation suggests these packages were once needed
  when Stemcells didn't have them.
- Another hypothesis is that some packages aimed to support other
  features that never made into this release (or were once present but
  no longer are)
the required mount.nfs binaries changed location when we started to
compile from source
some headers couldn't be found because the value for BOSH_INSTALL_TARGET
doesn't end in a `/`.

the packaging missed the `make install` call to install the compiled binaries
into BOSH_INSTALL_TARGET
nfs-utils 2.6.3 introduced the usage of `getrandom` which is a c function
that exposes kernel functionality. while the kernel functionality is available
in the 4.15 kernel of the xenial stemcell, the c function is not available in
the stemcells libc. The mentioned issue breaks compilation of the sqlite3_backend
in nfs-utils because `getrandom` is not defined. While `getrandom` is used only
in one place within the whole codebase, and attempts to patch in a getrandom function
succesfully compiled, it seems to be safer to pin back the nfs utils version until
xenial is fully out of support.
[ #186433296 ]

these lines are obsolete since we started compiling the nfs-utils
from source.
[ #186433296 ]

mount.nfs is not located in /sbin since we started compiling from source.

fixup issues when running mount via nfsdriver, the helper was not found in
the packages dir
[ #186433296 ]

these were used for manual testing

flyby: update comments to specify the package that is actually compiled
it is required to mount nfsv3 mounts. Without it, the mount will fail.
[ #186433296 ]

rpc statd is required to run for nfsv3 mounts to work.
addtionally rpc-bind is a runtime dependency that is required for nfsv3
mounts to work.
@cf-gitbot
Copy link
Copy Markdown

We have created an issue in Pivotal Tracker to manage this. Unfortunately, the Pivotal Tracker project is private so you may be unable to view the contents of the story.

The labels on this github issue will be updated when the story is started.

statdt requires rpcbind to be running in the background.
add log output for current state / execution
currently starting rpcstatd fails because it cannot find the libtirpc.so.3.

this is most probably happening because of the non default install location
for our packages.

fixes:
```
nfsv3driver/236135ea-84d1-441e-8e25-8ab606fa19d9:/var/vcap/bosh_ssh/bosh_e99a33b5d6034d4# LD_LIBRARY_PATH=/var/vcap/packages/nfs-debs/lib ldd  /var/vcap/packages/nfs-debs/sbin/rpcbind
        linux-vdso.so.1 =>  (0x00007ffd3e7f3000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f01969ac000)
        libtirpc.so.3 => /var/vcap/packages/nfs-debs/lib/libtirpc.so.3 (0x00007f0196784000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f01963ba000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f0196bc9000)
nfsv3driver/236135ea-84d1-441e-8e25-8ab606fa19d9:/var/vcap/bosh_ssh/bosh_e99a33b5d6034d4# ldd  /var/vcap/packages/nfs-debs/sbin/rpcbind
        linux-vdso.so.1 =>  (0x00007ffc7b1e0000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f90ca23b000)
        libtirpc.so.3 => not found
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f90c9e71000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f90ca458000)

```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants