Implement a whitelist for excluded vendor files
From !3542 (comment 207141162), it appears we were a bit too aggressive removing Ruby vendor
directories from the build. The license
gems is a notable exception in that it loads its data files from there.
If we remove the vendor
exclusion, we see that there are a number of gems that have vendor
directories that we can probably remove:
-------------------------------------------------------------------------------------------------------------
18.9 MiB [##########] /rugged-0.28.3.1
12.3 MiB [###### ] /ace-rails-ap-4.1.2
1.0 MiB [ ] /libyajl2-1.2.0
752.0 KiB [ ] /http_parser.rb-0.6.0
568.0 KiB [ ] /bundler-1.17.3
412.0 KiB [ ] /licensee-8.9.2
164.0 KiB [ ] /prometheus-client-mmap-0.9.8
120.0 KiB [ ] /doorkeeper-4.3.2
64.0 KiB [ ] /fast_gettext-1.6.0
60.0 KiB [ ] /gettext_i18n_rails_js-1.3.0
52.0 KiB [ ] /peek-1.0.1
32.0 KiB [ ] /multi_json-1.13.1
There doesn't appear to be able to specify a negative lookup or a whitelist in https://github.com/chef/omnibus/blob/7c1e039856513835f728b4e0c5a4106c339e99c2/lib/omnibus/file_syncer.rb#L57-L67. We may want to consider our own mechanism or submit an upstream patch to do this.
Edited by Stan Hu