# Keep matching patterns enough not to hide unintended errors and warnings. # There is no way to implement this with `%{SOURCE0}` without `%{_sourcedir}`. # The order in the .spec file could be possibly different. addFilter(r'ruby\.(spec|src):20: E: use-of-RPM_SOURCE_DIR$') # The used version is not obvious. addFilter(r'ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-build_assert\)$') addFilter(r'ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-check_type\)$') addFilter(r'ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-container_of\)$') addFilter(r'ruby\.(spec|src):\d+: W: unversioned-explicit-provides bundled\(ccan-list\)$') # The template files do not have to have executable bits. addFilter(r'^rubygem-bundler\.noarch: E: non-executable-script /usr/share/gems/gems/bundler-[\d\.]+/lib/bundler/templates/[\w/\.]+ 644 /usr/bin/env ') # The bundled gem files permissions are overridden as 644 by `make install`. # https://bugs.ruby-lang.org/issues/17840 # https://github.com/rubygems/rubygems/issues/5255 # https://github.com/ruby/debug/pull/481 # https://github.com/ruby/net-ftp/pull/12 # https://github.com/ruby/net-imap/pull/53 # https://github.com/ruby/net-pop/pull/7 # https://github.com/ruby/prime/pull/16 addFilter(r'^.*: E: non-executable-script /usr/share/gems/gems/(debug|net-(ftp|imap|pop)|prime)-[\d\.]+/bin/\w+ 644 ') # Ruby provides API to set the cipher list. addFilter(r'^ruby-libs\.\w+: W: crypto-policy-non-compliance-openssl /usr/lib(64)?/ruby/openssl.so SSL_CTX_set_cipher_list$') # `gethostbyname` is part of deprecated Ruby API. There is also request to drop the API altogether: # https://bugs.ruby-lang.org/issues/13097 # https://bugs.ruby-lang.org/issues/17944 addFilter(r'^ruby-libs\.\w+: W: binary-or-shlib-calls-gethostbyname /usr/lib(64)?/ruby/socket.so$') # Nothing referred and no dependency information should be no problem. # https://bugs.ruby-lang.org/issues/16558#note-2 addFilter(r'^ruby-libs\.\w+: E: shared-library-without-dependency-information /usr/lib(64)?/ruby/enc/gb2312.so$') # These are Ruby plugins, where Ruby always load glibc prior the library. addFilter(r'^ruby-libs\.\w+: W: library-not-linked-against-libc /usr/lib(64)?/ruby/.*.so$') # Rake ships some examples. addFilter(r'^rubygem-rake.noarch: W: devel-file-in-non-devel-package /usr/share/gems/gems/rake-[\d\.]+/doc/example/\w+.c$') # The -devel package depends on package containing libruby.so.x.y. That should # be enough: # ~~~ # $ rpm -qpR /var/lib/mock/ruby/result/ruby-devel-3.1.0-1.fc36.x86_64.rpm | grep libruby # libruby.so.3.1()(64bit) # ~~~ # https://github.com/rpm-software-management/rpmlint/issues/781 # # Unfortunately, this filter triggers another error: # https://github.com/rpm-software-management/rpmlint/issues/782 addFilter(r'^ruby-devel\.\w+: E: no-library-dependency-(for|on ruby-libs) /usr/lib(64)?/libruby.so.\d.\d.0$') # Some executables don't have their manual pages. Is it worth of use help2man? addFilter(r'^.+: W: no-manual-page-for-binary (bundler|gem|rbs|rdbg|rdoc|ruby-mri|typeprof)$')