ruby-fakegem.eclass: warn about using the fallback gemspec
authorHans de Graaff <graaff@gentoo.org>
Thu, 25 Jul 2019 07:05:28 +0000 (09:05 +0200)
committerHans de Graaff <graaff@gentoo.org>
Sat, 27 Jul 2019 07:13:50 +0000 (09:13 +0200)
The fallback gemspec does not contain dependencies so it will only
work for packages without any runtime gem dependencies. It is easy to
use it by mistake when switching from a gem to a source-based archive,
because the source-based archive does not contain the generated
metadata, but RUBY_FAKEGEM_GEMSPEC has not been set yet. This warning
alerts developers to this situation and encourages them to set
RUBY_FAKEGEM_GEMSPEC instead.

Signed-off-by: Hans de Graaff <graaff@gentoo.org>
eclass/ruby-fakegem.eclass

index 33a9e453f564666ba3b0150bdb7bc43706a5d821..a6a7654f9e6d042294ed0a78c9015b5cb6b8bd43 100644 (file)
@@ -295,6 +295,15 @@ ruby_fakegem_metadata_gemspec() {
 # See RUBY_FAKEGEM_NAME and RUBY_FAKEGEM_VERSION for setting name and version.
 # See RUBY_FAKEGEM_REQUIRE_PATHS for setting extra require paths.
 ruby_fakegem_genspec() {
+       case ${EAPI} in
+               4|5|6) ;;
+               *)
+                       eqawarn "Generating generic fallback gemspec *without* dependencies"
+                       eqawarn "This will only work when there are no runtime dependencies"
+                       eqawarn "Set RUBY_FAKEGEM_GEMSPEC to generate a proper specifications file"
+                       ;;
+       esac
+
        local required_paths="'lib'"
        for path in ${RUBY_FAKEGEM_REQUIRE_PATHS}; do
                required_paths="${required_paths}, '${path}'"