Merge pull request #77149 from alyssais/asciidoctor

Reduce AsciiDoctor closure size

zimbatm ddc83e68 e639d3e8

Changed files
+24 -6
pkgs
development
interpreters
ruby-modules
gem
gem-config
top-level
+1 -1
pkgs/development/interpreters/ruby/default.nix
···
# puts a reference to the C compiler in the binary.
# This might be required by some gems at runtime,
# but we allow to strip it out for smaller closure size.
-
, removeReferencesTo, removeReferenceToCC ? false
+
, removeReferencesTo, removeReferenceToCC ? true
, autoreconfHook, bison, autoconf
, buildEnv, bundler, bundix
, libiconv, libobjc, libunwind, Foundation
+17
pkgs/development/ruby-modules/gem-config/default.nix
···
in
{
+
asciidoctor-diagram = { version, ruby, ... }: {
+
postInstall = ''
+
# Delete vendored JAR files unless using JRuby.
+
if ruby -e 'exit(RUBY_PLATFORM != "java")'; then
+
rm -v $out/${ruby.gemPath}/gems/$gemName-${version}/lib/*.jar
+
fi
+
'';
+
};
+
atk = attrs: {
dependencies = attrs.dependencies ++ [ "gobject-introspection" ];
nativeBuildInputs = [ rake bundler pkgconfig ];
···
# The ruby build script takes care of this
dontUseCmakeConfigure = true;
+
+
postInstall = ''
+
# Reduce output size by a lot, and remove some unnecessary references.
+
# The ext directory should only be required at build time, so
+
# can be deleted now.
+
rm -r $out/${ruby.gemPath}/gems/mathematical-${attrs.version}/ext \
+
$out/${ruby.gemPath}/extensions/*/*/mathematical-${attrs.version}/gem_make.out
+
'';
# For some reason 'mathematical.so' is missing cairo and glib in its RPATH, add them explicitly here
postFixup = lib.optionalString stdenv.isLinux ''
+6 -3
pkgs/development/ruby-modules/gem/default.nix
···
, meta ? {}
, patches ? []
, gemPath ? []
-
, dontStrip ? true
+
, dontStrip ? false
# Assume we don't have to build unless strictly necessary (e.g. the source is a
# git checkout).
# If you need to apply patches, make sure to set `dontBuild = false`;
···
$gempkg $gemFlags -- $buildFlags
# looks like useless files which break build repeatability and consume space
-
rm -fv $out/${ruby.gemPath}/doc/*/*/created.rid || true
-
rm -fv $out/${ruby.gemPath}/gems/*/ext/*/mkmf.log || true
+
pushd $out/${ruby.gemPath}
+
rm -fv doc/*/*/created.rid || true
+
rm -fv {gems/*/ext/*,extensions/*/*/*}/{mkmf.log,gem_make.out} || true
+
rm -fvr cache
+
popd
# write out metadata and binstubs
spec=$(echo $out/${ruby.gemPath}/specifications/*.gemspec)
-2
pkgs/top-level/all-packages.nix
···
docSupport = false;
yamlSupport = false;
fiddleSupport = false;
-
# remove gcc from runtime closure
-
removeReferenceToCC = true;
};
ruby = ruby_2_6;