Ensure that all gems with native extensions are checked
The following discussion from !1208 (merged) should be addressed:
-
@leipert started a discussion: (+3 comments) @ashmckenzie That is an easy one
😆 Say, does it make sense to expand the list, e.g. with all gems that GitLab depends on, that have native extensions?
TL;DR from the discussion:
Say, does it make sense to expand the list, e.g. with all gems that GitLab depends on, that have native extensions?
Found all gems that have native extensions with gem pristine --all --no-extensions
Skipped RedCloth-4.3.2, it needs to compile an extension
Skipped bcrypt-3.1.12, it needs to compile an extension
Skipped bcrypt_pbkdf-1.0.0, it needs to compile an extension
Skipped binding_ninja-0.2.3, it needs to compile an extension
Skipped binding_of_caller-0.8.0, it needs to compile an extension
Skipped bootsnap-1.4.6, it needs to compile an extension
Skipped byebug-9.1.0, it needs to compile an extension
Skipped character_set-1.1.2, it needs to compile an extension
Skipped charlock_holmes-0.7.6, it needs to compile an extension
Skipped commonmarker-0.20.1, it needs to compile an extension
Skipped debug_inspector-0.0.3, it needs to compile an extension
Skipped ed25519-1.2.4, it needs to compile an extension
Skipped enumerable-statistics-2.0.1, it needs to compile an extension
Skipped escape_utils-1.2.1, it needs to compile an extension
Skipped eventmachine-1.2.7, it needs to compile an extension
Skipped fast_blank-1.0.0, it needs to compile an extension
Skipped ffi-1.12.2, it needs to compile an extension
Skipped gitlab-puma-4.3.3.gitlab.2, it needs to compile an extension
Skipped gpgme-2.0.20, it needs to compile an extension
Skipped hamlit-2.11.0, it needs to compile an extension
Skipped http-parser-1.2.1, it needs to compile an extension
Skipped jaro_winkler-1.5.4, it needs to compile an extension
Skipped json-1.8.6, it needs to compile an extension
Skipped kgio-2.11.2, it needs to compile an extension
Skipped msgpack-1.3.1, it needs to compile an extension
Skipped murmurhash3-0.1.6, it needs to compile an extension
Skipped nio4r-2.5.2, it needs to compile an extension
Skipped nokogiri-1.10.8, it needs to compile an extension
Skipped nokogumbo-1.5.0, it needs to compile an extension
Skipped pg-1.2.2, it needs to compile an extension
Skipped prometheus-client-mmap-0.10.0, it needs to compile an extension
Skipped rainbow-2.2.2, it needs to compile an extension
Skipped raindrops-0.19.0, it needs to compile an extension
Skipped rblineprof-0.3.6, it needs to compile an extension
Skipped rbtrace-0.4.11, it needs to compile an extension
Skipped re2-1.1.1, it needs to compile an extension
Skipped regexp_property_values-0.3.4, it needs to compile an extension
Skipped rinku-2.0.0, it needs to compile an extension
Skipped ruby-prof-1.3.1, it needs to compile an extension
Skipped rugged-0.28.4.1, it needs to compile an extension
Skipped sassc-2.0.1, it needs to compile an extension
Skipped sqlite3-1.3.13, it needs to compile an extension
Skipped stackprof-0.2.15, it needs to compile an extension
Skipped thin-1.7.2, it needs to compile an extension
Skipped thrift-0.11.0.0, it needs to compile an extension
Skipped timfel-krb5-auth-0.8.3, it needs to compile an extension
Skipped unf_ext-0.0.7.5, it needs to compile an extension
Skipped unicorn-5.4.1, it needs to compile an extension
Skipped version_sorter-2.2.4, it needs to compile an extension
Skipped vmstat-2.3.0, it needs to compile an extension
Skipped websocket-driver-0.7.1, it needs to compile an extension
Personally I already had problems with some default gems which required me to reinstall ruby (e.g. fiddle)
Skipped bigdecimal-1.4.1, it is a default gem
Skipped bundler-1.17.2, it is a default gem
Skipped cmath-1.0.0, it is a default gem
Skipped csv-3.0.9, it is a default gem
Skipped date-2.0.0, it is a default gem
Skipped dbm-1.0.0, it is a default gem
Skipped e2mmap-0.1.0, it is a default gem
Skipped etc-1.0.1, it is a default gem
Skipped fcntl-1.0.0, it is a default gem
Skipped fiddle-1.0.0, it is a default gem
Skipped fileutils-1.1.0, it is a default gem
Skipped forwardable-1.2.0, it is a default gem
Skipped gdbm-2.0.0, it is a default gem
Skipped io-console-0.4.7, it is a default gem
Skipped ipaddr-1.2.2, it is a default gem
Skipped irb-1.0.0, it is a default gem
Skipped json-2.1.0, it is a default gem
Skipped logger-1.3.0, it is a default gem
Skipped matrix-0.1.0, it is a default gem
Skipped mutex_m-0.1.0, it is a default gem
Skipped openssl-2.1.2, it is a default gem
Skipped ostruct-0.1.0, it is a default gem
Skipped prime-0.1.0, it is a default gem
Skipped psych-3.1.0, it is a default gem
Skipped rdoc-6.1.2, it is a default gem
Skipped rexml-3.1.9, it is a default gem
Skipped rss-0.2.7, it is a default gem
Skipped scanf-1.0.0, it is a default gem
Skipped sdbm-1.0.0, it is a default gem
Skipped shell-0.7, it is a default gem
Skipped stringio-0.0.2, it is a default gem
Skipped strscan-1.0.0, it is a default gem
Skipped sync-0.5.0, it is a default gem
Skipped thwait-0.1.0, it is a default gem
Skipped tracer-0.1.0, it is a default gem
Skipped webrick-1.4.2, it is a default gem
Skipped zlib-1.0.0, it is a default gem
Checking against all is probably overkill, but maybe it makes sense to extend the list.
As a sidenote: We should make sure that the Gemfile.lock actually still contains the extension, not we error in case the extension is gone and GitLab has actually removed it from the dependency tree.