V7 do not use debian packages#682
Merged
Merged
Conversation
[#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.
|
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. |
[#186433296]
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)
```
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
[#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.