{ stdenv, fetchurl, jre, makeWrapper , mysqlSupport ? true, mysql_jdbc ? null }: assert mysqlSupport -> mysql_jdbc != null; with stdenv.lib; let extraJars = optional mysqlSupport mysql_jdbc; logback-core = fetchurl { url = "http://central.maven.org/maven2/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar"; sha256 = "5946d837fe6f960c02a53eda7a6926ecc3c758bbdd69aa453ee429f858217f22"; }; logback-classic = fetchurl { url = "http://central.maven.org/maven2/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar"; sha256 = "fb53f8539e7fcb8f093a56e138112056ec1dc809ebb020b59d8a36a5ebac37e0"; }; slf4j = fetchurl { url = "http://central.maven.org/maven2/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar"; sha256 = "18c4a0095d5c1da6b817592e767bb23d29dd2f560ad74df75ff3961dbde25b79"; }; in stdenv.mkDerivation rec { name = "${pname}-${version}"; pname = "liquibase"; version = "3.6.2"; src = fetchurl { url = "https://github.com/liquibase/liquibase/releases/download/${pname}-parent-${version}/${name}-bin.tar.gz"; sha256 = "199ybjk0xxsg04v5x5l4arljmzj96hxva6ym6bp7av7dny0nqvfx"; }; buildInputs = [ jre makeWrapper ]; unpackPhase = '' tar xfz ${src} ''; installPhase = let addJars = dir: '' for jar in ${dir}/*.jar; do CP="\$CP":"\$jar" done ''; in '' mkdir -p $out/{bin,lib,sdk} mv ./* $out/ cp ${logback-core} ${logback-classic} ${slf4j} $out/lib # Clean up documentation. mkdir -p $out/share/doc/${name} mv $out/LICENSE.txt \ $out/README.txt \ $out/share/doc/${name} # Remove silly files. rm $out/liquibase.bat $out/liquibase.spec # we provide our own script rm $out/liquibase # there’s a lot of escaping, but I’m not sure how to improve that cat > $out/bin/liquibase <