From fec67b3bf02e003eb05c43e7b6de861879db0d20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Cs=C3=A1rdi?= Date: Fri, 18 Aug 2023 20:06:40 +0200 Subject: [PATCH 1/2] Support runtime packages For Debian and Ubuntu only. --- rules/QuantLib.json | 3 +++ rules/apparmor.json | 1 + rules/atk.json | 1 + rules/berkeleydb.json | 1 + rules/boost.json | 1 + rules/cairo.json | 1 + rules/coin-or-clp.json | 1 + rules/coinor-symphony.json | 3 ++- rules/eigen.json | 1 + rules/fftw3.json | 1 + rules/fontconfig.json | 5 ++-- rules/freetype.json | 1 + rules/fribidi.json | 1 + rules/gdal.json | 3 +++ rules/geos.json | 1 + rules/glib.json | 1 + rules/glpk.json | 5 ++-- rules/glu.json | 1 + rules/gmp.json | 1 + rules/gpgme.json | 1 + rules/gsl.json | 43 +++++++++++++++++++++++++++++ rules/gtk.json | 1 + rules/harfbuzz.json | 1 + rules/hdf5.json | 39 +++++++++++++++++++++++++++ rules/hiredis.json | 1 + rules/imagemagick.json | 1 + rules/leptonica.json | 1 + rules/libarchive.json | 1 + rules/libavfilter.json | 37 +++++++++++++++++++++++++ rules/libbsd.json | 1 + rules/libcurl.json | 1 + rules/libgit2.json | 55 ++++++++++++++++++++++++++++++++++++++ rules/libicu.json | 55 ++++++++++++++++++++++++++++++++++++++ rules/libjpeg.json | 9 ++++++- rules/libjq.json | 5 ++-- rules/libmagic.json | 1 + rules/libmysqlclient.json | 2 ++ rules/libpng.json | 1 + rules/libprotobuf.json | 43 +++++++++++++++++++++++++++++ rules/librsvg2.json | 1 + rules/libsecret.json | 1 + rules/libsndfile.json | 1 + rules/libsodium.json | 1 + rules/libssh2.json | 1 + rules/libtiff.json | 27 +++++++++++++++++++ rules/libwebp.json | 32 ++++++++++++++++++++++ rules/libxml2.json | 1 + rules/libxslt.json | 1 + rules/mpfr.json | 1 + rules/netcdf4.json | 55 ++++++++++++++++++++++++++++++++++++++ rules/odbc.json | 32 ++++++++++++++++++++++ rules/openbabel.json | 38 ++++++++++++++++++++++++++ rules/opencl.json | 1 + rules/openssl.json | 32 ++++++++++++++++++++++ rules/pango.json | 8 ++++++ rules/poppler.json | 1 + rules/postgresql.json | 1 + rules/proj.json | 55 ++++++++++++++++++++++++++++++++++++++ rules/redland.json | 1 + rules/sasl.json | 1 + rules/sqlite3.json | 1 + rules/tesseract.json | 27 +++++++++++++++++++ rules/tk.json | 5 ++-- rules/udunits2.json | 1 + rules/v8.json | 43 +++++++++++++++++++++++++++++ rules/xft.json | 1 + rules/zeromq.json | 3 ++- rules/zlib.json | 1 + schema.json | 6 +++++ schema.template.json | 6 +++++ test/test-packages.sh | 6 +++++ 71 files changed, 709 insertions(+), 15 deletions(-) diff --git a/rules/QuantLib.json b/rules/QuantLib.json index 001e436..b379a98 100644 --- a/rules/QuantLib.json +++ b/rules/QuantLib.json @@ -7,6 +7,9 @@ "packages": [ "libquantlib0-dev" ], + "runtime_packages": [ + "libquantlib0v5" + ], "constraints": [ { "os": "linux", diff --git a/rules/apparmor.json b/rules/apparmor.json index a1126ab..baae72e 100644 --- a/rules/apparmor.json +++ b/rules/apparmor.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libapparmor-dev"], + "runtime_packages": ["libapparmor1"], "constraints": [ { "os": "linux", diff --git a/rules/atk.json b/rules/atk.json index 733b7ce..86fd434 100644 --- a/rules/atk.json +++ b/rules/atk.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libatk1.0-dev"], + "runtime_packages": ["libatk1.0-0"], "constraints": [ { "os": "linux", diff --git a/rules/berkeleydb.json b/rules/berkeleydb.json index ead3a39..a15a96d 100644 --- a/rules/berkeleydb.json +++ b/rules/berkeleydb.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libdb-dev"], + "runtime_packages": ["libdb5.3"], "constraints": [ { "os": "linux", diff --git a/rules/boost.json b/rules/boost.json index c2b74c0..0417956 100644 --- a/rules/boost.json +++ b/rules/boost.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libboost-all-dev"], + "runtime_packages": [], "constraints": [ { "os": "linux", diff --git a/rules/cairo.json b/rules/cairo.json index 8e0b7b8..72c30d8 100644 --- a/rules/cairo.json +++ b/rules/cairo.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libcairo2-dev"], + "runtime_packages": ["libcairo2"], "constraints": [ { "os": "linux", diff --git a/rules/coin-or-clp.json b/rules/coin-or-clp.json index 452ceae..18a27bc 100644 --- a/rules/coin-or-clp.json +++ b/rules/coin-or-clp.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["coinor-libclp-dev"], + "runtime_packages": ["coinor-libclp1"], "constraints": [ { "os": "linux", diff --git a/rules/coinor-symphony.json b/rules/coinor-symphony.json index f959e38..3c90a7f 100644 --- a/rules/coinor-symphony.json +++ b/rules/coinor-symphony.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["coinor-symphony", "coinor-libsymphony-dev"], + "runtime_packages": ["coinor-symphony"], "constraints": [ { "os": "linux", @@ -24,4 +25,4 @@ ] } ] - } \ No newline at end of file + } diff --git a/rules/eigen.json b/rules/eigen.json index 9bcff03..297be30 100644 --- a/rules/eigen.json +++ b/rules/eigen.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libeigen3-dev"], + "runtime_packages": [], "constraints": [ { "os": "linux", diff --git a/rules/fftw3.json b/rules/fftw3.json index 0b3571b..ab81279 100644 --- a/rules/fftw3.json +++ b/rules/fftw3.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libfftw3-dev"], + "runtime_packages": ["libfftw3-bin"], "constraints": [ { "os": "linux", diff --git a/rules/fontconfig.json b/rules/fontconfig.json index b732dcc..1495670 100644 --- a/rules/fontconfig.json +++ b/rules/fontconfig.json @@ -4,9 +4,8 @@ ], "dependencies": [ { - "packages": [ - "libfontconfig1-dev" - ], + "packages": ["libfontconfig1-dev"], + "runtime_packages": ["libfontconfig1"], "constraints": [ { "os": "linux", diff --git a/rules/freetype.json b/rules/freetype.json index 9cc0283..d705c6e 100644 --- a/rules/freetype.json +++ b/rules/freetype.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libfreetype6-dev"], + "runtime_packages": ["libfreetype6"], "constraints": [ { "os": "linux", diff --git a/rules/fribidi.json b/rules/fribidi.json index de717dd..25a6374 100644 --- a/rules/fribidi.json +++ b/rules/fribidi.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libfribidi-dev"], + "runtime_packages": ["libfribidi0"], "constraints": [ { "os": "linux", diff --git a/rules/gdal.json b/rules/gdal.json index 0f656d2..1e47e08 100644 --- a/rules/gdal.json +++ b/rules/gdal.json @@ -27,6 +27,9 @@ "libgdal-dev", "gdal-bin" ], + "runtime_packages": [ + "gdal-bin" + ], "constraints": [ { "os": "linux", diff --git a/rules/geos.json b/rules/geos.json index 49e41ec..39b82fa 100644 --- a/rules/geos.json +++ b/rules/geos.json @@ -18,6 +18,7 @@ }, { "packages": ["libgeos-dev"], + "runtime_packages": ["libgeos-c1v5"], "constraints": [ { "os": "linux", diff --git a/rules/glib.json b/rules/glib.json index 409ff33..ebc2c12 100644 --- a/rules/glib.json +++ b/rules/glib.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libglib2.0-dev"], + "runtime_packages": ["libglib2.0-bin"], "constraints": [ { "os": "linux", diff --git a/rules/glpk.json b/rules/glpk.json index 565b8eb..2f21ba1 100644 --- a/rules/glpk.json +++ b/rules/glpk.json @@ -4,9 +4,8 @@ ], "dependencies": [ { - "packages": [ - "libglpk-dev" - ], + "packages": ["libglpk-dev"], + "runtime_packages": ["libglpk40"], "constraints": [ { "os": "linux", diff --git a/rules/glu.json b/rules/glu.json index c716605..599964f 100644 --- a/rules/glu.json +++ b/rules/glu.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libglu1-mesa-dev"], + "runtime_packages": ["libglu1-mesa"], "constraints": [ { "os": "linux", diff --git a/rules/gmp.json b/rules/gmp.json index 81ace29..c0ecd98 100644 --- a/rules/gmp.json +++ b/rules/gmp.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libgmp3-dev"], + "runtime_packages": ["libgmp10", "libgmpxx4ldbl"], "constraints": [ { "os": "linux", diff --git a/rules/gpgme.json b/rules/gpgme.json index d504566..79ccef7 100644 --- a/rules/gpgme.json +++ b/rules/gpgme.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libgpgme11-dev"], + "runtime_packages": ["libgpgme11"], "constraints": [ { "os": "linux", diff --git a/rules/gsl.json b/rules/gsl.json index 8e58943..4b68c87 100644 --- a/rules/gsl.json +++ b/rules/gsl.json @@ -1,6 +1,49 @@ { "patterns": ["\\blibgsl\\b", "\\bgsl\\b", "\\bgnu scientific library\\b"], "dependencies": [ + { + "packages": ["libgsl0-dev"], + "runtime_packages": ["libgsl23"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["10"] + } + ] + }, + { + "packages": ["libgsl0-dev"], + "runtime_packages": ["libgsl25"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["11"] + } + ] + }, + { + "packages": ["libgsl0-dev"], + "runtime_packages": ["libgsl27"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["22.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["12", "unstable"] + } + ] + }, { "packages": ["libgsl0-dev"], "constraints": [ diff --git a/rules/gtk.json b/rules/gtk.json index 9f75a10..2bf1b4e 100644 --- a/rules/gtk.json +++ b/rules/gtk.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libgtk2.0-dev"], + "runtime_packages": ["libgtk2.0-0"], "constraints": [ { "os": "linux", diff --git a/rules/harfbuzz.json b/rules/harfbuzz.json index 5d521f0..a58120d 100644 --- a/rules/harfbuzz.json +++ b/rules/harfbuzz.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libharfbuzz-dev"], + "runtime_packages": ["libharfbuzz0b"], "constraints": [ { "os": "linux", diff --git a/rules/hdf5.json b/rules/hdf5.json index 2e2549b..915054b 100644 --- a/rules/hdf5.json +++ b/rules/hdf5.json @@ -1,6 +1,45 @@ { "patterns": ["\\bhdf5\\b", "\\blibhdf5\\b"], "dependencies": [ + { + "packages": ["libhdf5-dev"], + "runtime_packages": ["libhdf5-103", "libhdf5-cpp-103"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["10"] + } + ] + }, + { + "packages": ["libhdf5-dev"], + "runtime_packages": [ + "libhdf5-103-1", + "libhdf5-fortran-102", + "libhdf5-hl-100", + "libhdf5-hl-fortran-100", + "libhdf5-cpp-103-1", + "libhdf5-hl-cpp-100" + ], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["22.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["11", "12", "unstable"] + } + ] + }, { "packages": ["libhdf5-dev"], "constraints": [ diff --git a/rules/hiredis.json b/rules/hiredis.json index 8a5d387..42b4dad 100644 --- a/rules/hiredis.json +++ b/rules/hiredis.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libhiredis-dev"], + "runtime_packages": ["libhiredis0.14"], "constraints": [ { "os": "linux", diff --git a/rules/imagemagick.json b/rules/imagemagick.json index f0431f9..936fa25 100644 --- a/rules/imagemagick.json +++ b/rules/imagemagick.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["imagemagick", "libmagick++-dev", "gsfonts"], + "runtime_packages": ["imagemagick", "gsfonts"], "constraints": [ { "os": "linux", diff --git a/rules/leptonica.json b/rules/leptonica.json index 99f4109..877de18 100644 --- a/rules/leptonica.json +++ b/rules/leptonica.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libleptonica-dev"], + "runtime_packages": ["liblept5"], "constraints": [ { "os": "linux", diff --git a/rules/libarchive.json b/rules/libarchive.json index ce874bb..6b24a17 100644 --- a/rules/libarchive.json +++ b/rules/libarchive.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libarchive-dev"], + "runtime_packages": ["libarchive13"], "constraints": [ { "os": "linux", diff --git a/rules/libavfilter.json b/rules/libavfilter.json index f1cc546..4bf0399 100644 --- a/rules/libavfilter.json +++ b/rules/libavfilter.json @@ -1,6 +1,43 @@ { "patterns": ["\\blibavfilter\\b"], "dependencies": [ + { + "packages": ["libavfilter-dev"], + "runtime_packages": ["libavfilter7"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu" + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["10", "11"] + } + ] + }, + { + "packages": ["libavfilter-dev"], + "runtime_packages": ["libavfilter8"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["12"] + } + ] + }, + { + "packages": ["libavfilter-dev"], + "runtime_packages": ["libavfilter9"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["unstable"] + } + ] + }, { "packages": ["libavfilter-dev"], "constraints": [ diff --git a/rules/libbsd.json b/rules/libbsd.json index 2f3f9cd..9cec034 100644 --- a/rules/libbsd.json +++ b/rules/libbsd.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libbsd-dev"], + "runtime_packages": ["libbsd0"], "constraints": [ { "os": "linux", diff --git a/rules/libcurl.json b/rules/libcurl.json index 35bffa5..8016510 100644 --- a/rules/libcurl.json +++ b/rules/libcurl.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libcurl4-openssl-dev"], + "runtime_packages": ["libcurl4"], "apt_satisfy": ["libcurl4-openssl-dev | libcurl4-dev"], "constraints": [ { diff --git a/rules/libgit2.json b/rules/libgit2.json index 772fef5..b44f703 100644 --- a/rules/libgit2.json +++ b/rules/libgit2.json @@ -16,6 +16,61 @@ } ] }, + { + "packages": ["libgit2-dev"], + "runtime_packages": ["libgit2-28"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04"] + } + ] + }, + { + "packages": ["libgit2-dev"], + "runtime_packages": ["libgit2-1.1"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["22.04"] + } + ] + }, + { + "packages": ["libgit2-dev"], + "runtime_packages": ["libgit2-27"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["10"] + } + ] + }, + { + "packages": ["libgit2-dev"], + "runtime_packages": ["libgit2-1.1"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["11"] + } + ] + }, + { + "packages": ["libgit2-dev"], + "runtime_packages": ["libgit2-1.5"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["12", "unstable"] + } + ] + }, { "packages": ["libgit2-dev"], "constraints": [ diff --git a/rules/libicu.json b/rules/libicu.json index 207cca6..3da5697 100644 --- a/rules/libicu.json +++ b/rules/libicu.json @@ -1,6 +1,61 @@ { "patterns": ["\\bicu4c\\b"], "dependencies": [ + { + "packages": ["libicu-dev"], + "runtime_packages": ["libicu66"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04"] + } + ] + }, + { + "packages": ["libicu-dev"], + "runtime_packages": ["libicu70"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["22.04"] + } + ] + }, + { + "packages": ["libicu-dev"], + "runtime_packages": ["libicu63"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["10"] + } + ] + }, + { + "packages": ["libicu-dev"], + "runtime_packages": ["libicu67"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["11"] + } + ] + }, + { + "packages": ["libicu-dev"], + "runtime_packages": ["libicu72"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["12", "unstable"] + } + ] + }, { "packages": ["libicu-dev"], "constraints": [ diff --git a/rules/libjpeg.json b/rules/libjpeg.json index 5a3c216..c23df7c 100644 --- a/rules/libjpeg.json +++ b/rules/libjpeg.json @@ -3,11 +3,18 @@ "dependencies": [ { "packages": ["libjpeg-dev"], + "runtime_packages": ["libjpeg-turbo8"], "constraints": [ { "os": "linux", "distribution": "ubuntu" - }, + } + ] + }, + { + "packages": ["libjpeg-dev"], + "runtime_packages": ["libjpeg62-turbo"], + "constraints": [ { "os": "linux", "distribution": "debian" diff --git a/rules/libjq.json b/rules/libjq.json index 18d66a5..de9e090 100644 --- a/rules/libjq.json +++ b/rules/libjq.json @@ -73,9 +73,8 @@ ] }, { - "packages": [ - "libjq-dev" - ], + "packages": ["libjq-dev"], + "runtime_packages": ["libjq1"], "constraints": [ { "os": "linux", diff --git a/rules/libmagic.json b/rules/libmagic.json index ef7643d..3b81531 100644 --- a/rules/libmagic.json +++ b/rules/libmagic.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libmagic-dev"], + "runtime_packages": ["libmagic1"], "constraints": [ { "os": "linux", diff --git a/rules/libmysqlclient.json b/rules/libmysqlclient.json index 20a8776..d110292 100644 --- a/rules/libmysqlclient.json +++ b/rules/libmysqlclient.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libmysqlclient-dev"], + "runtime_packages": ["libmysqlclient21"], "constraints": [ { "os": "linux", @@ -12,6 +13,7 @@ }, { "packages": ["libmariadb-dev-compat", "libmariadb-dev"], + "runtime_packages": ["libmariadb3"], "constraints": [ { "os": "linux", diff --git a/rules/libpng.json b/rules/libpng.json index 3d14b45..7164dce 100644 --- a/rules/libpng.json +++ b/rules/libpng.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libpng-dev"], + "runtime_packages": ["libpng16-16"], "constraints": [ { "os": "linux", diff --git a/rules/libprotobuf.json b/rules/libprotobuf.json index b347393..1adfc67 100644 --- a/rules/libprotobuf.json +++ b/rules/libprotobuf.json @@ -1,6 +1,49 @@ { "patterns": ["\\blibprotobuf\\b"], "dependencies": [ + { + "packages": ["libprotobuf-dev"], + "runtime_packages": ["libprotobuf17", "libprotobuf-lite17"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["10"] + } + ] + }, + { + "packages": ["libprotobuf-dev"], + "runtime_packages": ["libprotobuf23", "libprotobuf-lite23"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["22.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["11"] + } + ] + }, + { + "packages": ["libprotobuf-dev"], + "runtime_packages": ["libprotobuf32", "libprotobuf-lite32"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["12", "unstable"] + } + ] + }, { "packages": ["libprotobuf-dev"], "constraints": [ diff --git a/rules/librsvg2.json b/rules/librsvg2.json index 10abc82..45b40a9 100644 --- a/rules/librsvg2.json +++ b/rules/librsvg2.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["librsvg2-dev"], + "runtime_packages": ["gir1.2-rsvg-2.0", "librsvg2-2", "librsvg2-common"], "constraints": [ { "os": "linux", diff --git a/rules/libsecret.json b/rules/libsecret.json index c67e1a7..34adc4e 100644 --- a/rules/libsecret.json +++ b/rules/libsecret.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libsecret-1-dev"], + "runtime_packages": ["libsecret-1-0", "gir1.2-secret-1"], "constraints": [ { "os": "linux", diff --git a/rules/libsndfile.json b/rules/libsndfile.json index d37797e..baf191b 100644 --- a/rules/libsndfile.json +++ b/rules/libsndfile.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libsndfile1-dev"], + "runtime_packages": ["libsndfile1"], "constraints": [ { "os": "linux", diff --git a/rules/libsodium.json b/rules/libsodium.json index ff435d2..ee76087 100644 --- a/rules/libsodium.json +++ b/rules/libsodium.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libsodium-dev"], + "runtime_packages": ["libsodium23"], "constraints": [ { "os": "linux", diff --git a/rules/libssh2.json b/rules/libssh2.json index 005c2eb..7474795 100644 --- a/rules/libssh2.json +++ b/rules/libssh2.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libssh2-1-dev"], + "runtime_packages": ["libssh2-1"], "constraints": [ { "os": "linux", diff --git a/rules/libtiff.json b/rules/libtiff.json index 4416602..9aa2de1 100644 --- a/rules/libtiff.json +++ b/rules/libtiff.json @@ -1,6 +1,33 @@ { "patterns": ["\\blibtiff\\b", "\\btiff\\b"], "dependencies": [ + { + "packages": ["libtiff-dev"], + "runtime_packages": ["libtiff5", "libtiffxx5"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04", "22.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions":["10", "11"] + } + ] + }, + { + "packages": ["libtiff-dev"], + "runtime_packages": ["libtiff6", "libtiffxx6"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["12", "unstable"] + } + ] + }, { "packages": ["libtiff-dev"], "constraints": [ diff --git a/rules/libwebp.json b/rules/libwebp.json index b7f3873..68ec6c3 100644 --- a/rules/libwebp.json +++ b/rules/libwebp.json @@ -1,6 +1,38 @@ { "patterns": ["\\blibwebp\\b"], "dependencies": [ + { + "packages": ["libwebp-dev"], + "runtime_packages": ["libwebp6", "libwebpmux3", "libwebpdemux2"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["10", "11"] + } + ] + }, + { + "packages": ["libwebp-dev"], + "runtime_packages": ["libwebp7", "libwebpmux3", "libwebpdemux2"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["22.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["12", "unstable"] + } + ] + }, { "packages": ["libwebp-dev"], "constraints": [ diff --git a/rules/libxml2.json b/rules/libxml2.json index 9150e90..0412952 100644 --- a/rules/libxml2.json +++ b/rules/libxml2.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libxml2-dev"], + "runtime_packages": ["libxml2"], "constraints": [ { "os": "linux", diff --git a/rules/libxslt.json b/rules/libxslt.json index 11b932b..6fc54ef 100644 --- a/rules/libxslt.json +++ b/rules/libxslt.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libxslt-dev"], + "runtime_packages": ["libxslt1.1"], "constraints": [ { "os": "linux", diff --git a/rules/mpfr.json b/rules/mpfr.json index 9beb210..5242f9e 100644 --- a/rules/mpfr.json +++ b/rules/mpfr.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libmpfr-dev"], + "runtime_packages": ["libmpfr6"], "constraints": [ { "os": "linux", diff --git a/rules/netcdf4.json b/rules/netcdf4.json index ae15ef9..3a699b8 100644 --- a/rules/netcdf4.json +++ b/rules/netcdf4.json @@ -1,6 +1,61 @@ { "patterns": ["\\bnetcdf\\b", "\\bnetcdf4\\b"], "dependencies": [ + { + "packages": ["libnetcdf-dev"], + "runtime_packages": ["libnetcdf15"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04"] + } + ] + }, + { + "packages": ["libnetcdf-dev"], + "runtime_packages": ["libnetcdf19"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["22.04"] + } + ] + }, + { + "packages": ["libnetcdf-dev"], + "runtime_packages": ["libnetcdf13"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["10"] + } + ] + }, + { + "packages": ["libnetcdf-dev"], + "runtime_packages": ["libnetcdf18"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["11"] + } + ] + }, + { + "packages": ["libnetcdf-dev"], + "runtime_packages": ["libnetcdf19"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["12", "unstable"] + } + ] + }, { "packages": ["libnetcdf-dev"], "constraints": [ diff --git a/rules/odbc.json b/rules/odbc.json index 2e466a7..dc3575e 100644 --- a/rules/odbc.json +++ b/rules/odbc.json @@ -1,6 +1,38 @@ { "patterns": ["\\bodbc\\b", "\\bodbc3\\b"], "dependencies": [ + { + "packages": ["unixodbc-dev"], + "runtime_packages": ["libodbc1", "odbcinst1debian2"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["10", "11"] + } + ] + }, + { + "packages": ["unixodbc-dev"], + "runtime_packages": ["libodbc2", "libodbccr2", "libodbcinst2"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["22.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["12", "unstable"] + } + ] + }, { "packages": ["unixodbc-dev"], "constraints": [ diff --git a/rules/openbabel.json b/rules/openbabel.json index 885f17f..2b3991c 100644 --- a/rules/openbabel.json +++ b/rules/openbabel.json @@ -1,6 +1,44 @@ { "patterns": ["\\bopenbabel\\b"], "dependencies": [ + { + "packages": ["libopenbabel-dev"], + "runtime_packages": ["libopenbabel6"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04"] + } + ] + }, + { + "packages": ["libopenbabel-dev"], + "runtime_packages": ["libopenbabel7"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["22.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["11", "12", "unstable"] + } + ] + }, + { + "packages": ["libopenbabel-dev"], + "runtime_packages": ["libopenbabel5"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["10"] + } + ] + }, { "packages": ["libopenbabel-dev"], "constraints": [ diff --git a/rules/opencl.json b/rules/opencl.json index 0c54283..0071597 100644 --- a/rules/opencl.json +++ b/rules/opencl.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["ocl-icd-opencl-dev"], + "runtime_packages": ["ocl-icd-libopencl1"], "constraints": [ { "os": "linux", diff --git a/rules/openssl.json b/rules/openssl.json index baf71c0..05077a6 100644 --- a/rules/openssl.json +++ b/rules/openssl.json @@ -1,6 +1,38 @@ { "patterns": ["\\bopenssl\\b"], "dependencies": [ + { + "packages": ["libssl-dev"], + "runtime_packages": ["libssl1.1"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["10", "11"] + } + ] + }, + { + "packages": ["libssl-dev"], + "runtime_packages": ["libssl3"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["22.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["12", "unstable"] + } + ] + }, { "packages": ["libssl-dev"], "constraints": [ diff --git a/rules/pango.json b/rules/pango.json index f67dd3d..b8601e4 100644 --- a/rules/pango.json +++ b/rules/pango.json @@ -3,6 +3,14 @@ "dependencies": [ { "packages": ["libpango1.0-dev"], + "runtime_packages": [ + "gir1.2-pango-1.0", + "libpango-1.0-0", + "libpangocairo-1.0-0", + "libpangoft2-1.0-0", + "libpangoxft-1.0-0", + "pango1.0-tools" + ], "constraints": [ { "os": "linux", diff --git a/rules/poppler.json b/rules/poppler.json index cbe385c..b2a4b08 100644 --- a/rules/poppler.json +++ b/rules/poppler.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libpoppler-cpp-dev"], + "runtime_packages": ["libpoppler-cpp0v5"], "constraints": [ { "os": "linux", diff --git a/rules/postgresql.json b/rules/postgresql.json index 8d35115..511ea52 100644 --- a/rules/postgresql.json +++ b/rules/postgresql.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libpq-dev"], + "runtime_packages": ["libpq5"], "constraints": [ { "os": "linux", diff --git a/rules/proj.json b/rules/proj.json index ad3ab41..cd92e39 100644 --- a/rules/proj.json +++ b/rules/proj.json @@ -1,6 +1,61 @@ { "patterns": ["\\bproj\\b", "\\bproj\\.4\\b"], "dependencies": [ + { + "packages": ["libproj-dev"], + "runtime_packages": ["libproj15"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04"] + } + ] + }, + { + "packages": ["libproj-dev"], + "runtime_packages": ["libproj22"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["22.04"] + } + ] + }, + { + "packages": ["libproj-dev"], + "runtime_packages": ["libproj13"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["10"] + } + ] + }, + { + "packages": ["libproj-dev"], + "runtime_packages": ["libproj19"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["11"] + } + ] + }, + { + "packages": ["libproj-dev"], + "runtime_packages": ["libproj25"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["12", "unstable"] + } + ] + }, { "packages": ["libproj-dev"], "constraints": [ diff --git a/rules/redland.json b/rules/redland.json index 0237a8d..4752519 100644 --- a/rules/redland.json +++ b/rules/redland.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["librdf0-dev"], + "runtime_packages": ["librdf0"], "constraints": [ { "os": "linux", diff --git a/rules/sasl.json b/rules/sasl.json index 861a87d..39dbcc4 100644 --- a/rules/sasl.json +++ b/rules/sasl.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libsasl2-dev"], + "runtime_packages": ["libsasl2-2"], "constraints": [ { "os": "linux", diff --git a/rules/sqlite3.json b/rules/sqlite3.json index bc84bd6..fd62778 100644 --- a/rules/sqlite3.json +++ b/rules/sqlite3.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libsqlite3-dev"], + "runtime_packages": ["libsqlite3-0"], "constraints": [ { "os": "linux", diff --git a/rules/tesseract.json b/rules/tesseract.json index 96af678..c238921 100644 --- a/rules/tesseract.json +++ b/rules/tesseract.json @@ -1,6 +1,33 @@ { "patterns": ["\\btesseract\\b"], "dependencies": [ + { + "packages": ["libtesseract-dev", "tesseract-ocr-eng"], + "runtime_packages": ["libtesseract4", "tesseract-ocr-eng"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu" + + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["10", "11"] + } + ] + }, + { + "packages": ["libtesseract-dev", "tesseract-ocr-eng"], + "runtime_packages": ["libtesseract5", "tesseract-ocr-eng"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["12", "unstable"] + } + ] + }, { "packages": ["libtesseract-dev", "tesseract-ocr-eng"], "constraints": [ diff --git a/rules/tk.json b/rules/tk.json index 09f05d3..c558d8b 100644 --- a/rules/tk.json +++ b/rules/tk.json @@ -4,9 +4,8 @@ ], "dependencies": [ { - "packages": [ - "tk-dev" - ], + "packages": ["tk-dev"], + "runtime_packages": ["tk"], "constraints": [ { "os": "linux", diff --git a/rules/udunits2.json b/rules/udunits2.json index cafb1f7..e2f9ceb 100644 --- a/rules/udunits2.json +++ b/rules/udunits2.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libudunits2-dev"], + "runtime_packages": ["libudunits2-0"], "constraints": [ { "os": "linux", diff --git a/rules/v8.json b/rules/v8.json index 177ea27..cfe0f6d 100644 --- a/rules/v8.json +++ b/rules/v8.json @@ -1,6 +1,49 @@ { "patterns": ["\\bv8\\b"], "dependencies": [ + { + "packages": ["libnode-dev"], + "runtime_packages": ["libnode64"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["10"] + } + ] + }, + { + "packages": ["libnode-dev"], + "runtime_packages": ["libnode72"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["22.04"] + }, + { + "os": "linux", + "distribution": "debian", + "versions": ["11"] + } + ] + }, + { + "packages": ["libnode-dev"], + "runtime_packages": ["libnode108"], + "constraints": [ + { + "os": "linux", + "distribution": "debian", + "versions": ["12", "unstable"] + } + ] + }, { "packages": ["libnode-dev"], "constraints": [ diff --git a/rules/xft.json b/rules/xft.json index f35ea93..84f2d3c 100644 --- a/rules/xft.json +++ b/rules/xft.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["libxft-dev"], + "runtime_packages": ["libxft2"], "constraints": [ { "os": "linux", diff --git a/rules/zeromq.json b/rules/zeromq.json index 16ebe51..4488eb4 100644 --- a/rules/zeromq.json +++ b/rules/zeromq.json @@ -2,7 +2,8 @@ "patterns": ["\\bzeromq\\b"], "dependencies": [ { - "packages": ["libzmq3-dev"], + "packages": ["libzmq5-dev"], + "runtime_packages": ["libzmq5"], "constraints": [ { "os": "linux", diff --git a/rules/zlib.json b/rules/zlib.json index f5f653a..8bee4a0 100644 --- a/rules/zlib.json +++ b/rules/zlib.json @@ -3,6 +3,7 @@ "dependencies": [ { "packages": ["zlib1g-dev"], + "runtime_packages": ["zlib1g"], "constraints": [ { "os": "linux", diff --git a/schema.json b/schema.json index 9d7e192..2e40d28 100644 --- a/schema.json +++ b/schema.json @@ -74,6 +74,12 @@ "minLength": 1 } }, + "runtime_packages": { + "type": "array", + "items": { + "type": "string" + } + }, "apt_satisfy": { "type": "array", "items": { diff --git a/schema.template.json b/schema.template.json index b10c56a..bb879b3 100644 --- a/schema.template.json +++ b/schema.template.json @@ -74,6 +74,12 @@ "minLength": 1 } }, + "runtime_packages": { + "type": "array", + "items": { + "type": "string" + } + }, "apt_satisfy": { "type": "array", "items": { diff --git a/test/test-packages.sh b/test/test-packages.sh index 637fe1e..3d0bc0b 100755 --- a/test/test-packages.sh +++ b/test/test-packages.sh @@ -189,6 +189,7 @@ test_packages() { pre_install_cmds=$(echo "$dep" | jq ".pre_install[]?") pkgs=$(echo "$dep" | jq -r ".packages[]") sats=$(echo "$dep" | jq -r ".apt_satisfy[]?") + rpkgs=$(echo "$dep" | jq -r '.runtime_packages[]?') jq -c <<< "$pre_install_cmds" | while read cmd; do run_extra_cmd "$cmd" done @@ -201,6 +202,11 @@ test_packages() { $test_satisfy "$sat" $version done fi + if [ ! -z "$rpkgs" ]; then + echo "$rpkgs" | while read pkg; do + $test_package "$pkg" + done + fi done done } From ade2472284e476883db738702b2e221cf5613473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Cs=C3=A1rdi?= Date: Fri, 18 Aug 2023 22:59:14 +0200 Subject: [PATCH 2/2] Fix runtime_packages on Ubuntu 18.04 --- rules/hiredis.json | 25 +++++++++++++++++++++++++ rules/libavfilter.json | 14 +++++++++++++- rules/libmysqlclient.json | 14 +++++++++++++- rules/pango.json | 14 ++++++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) diff --git a/rules/hiredis.json b/rules/hiredis.json index 42b4dad..988c574 100644 --- a/rules/hiredis.json +++ b/rules/hiredis.json @@ -1,9 +1,34 @@ { "patterns": ["\\bhiredis\\b"], "dependencies": [ + { + "packages": ["libhiredis-dev"], + "runtime_packages": ["libhiredis0.13"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["18.04"] + } + ] + }, { "packages": ["libhiredis-dev"], "runtime_packages": ["libhiredis0.14"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04", "22.04"] + }, + { + "os": "linux", + "distribution": "debian" + } + ] + }, + { + "packages": ["libhiredis-dev"], "constraints": [ { "os": "linux", diff --git a/rules/libavfilter.json b/rules/libavfilter.json index 4bf0399..cd4670d 100644 --- a/rules/libavfilter.json +++ b/rules/libavfilter.json @@ -1,13 +1,25 @@ { "patterns": ["\\blibavfilter\\b"], "dependencies": [ + { + "packages": ["libavfilter-dev"], + "runtime_packages": ["libavfilter6"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["18.04"] + } + ] + }, { "packages": ["libavfilter-dev"], "runtime_packages": ["libavfilter7"], "constraints": [ { "os": "linux", - "distribution": "ubuntu" + "distribution": "ubuntu", + "versions": ["20.04", "22.04"] }, { "os": "linux", diff --git a/rules/libmysqlclient.json b/rules/libmysqlclient.json index d110292..3d640e4 100644 --- a/rules/libmysqlclient.json +++ b/rules/libmysqlclient.json @@ -1,13 +1,25 @@ { "patterns": ["\\blibmysqlclient\\b"], "dependencies": [ + { + "packages": ["libmysqlclient-dev"], + "runtime_packages": ["libmysqlclient20"], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["18.04"] + } + ] + }, { "packages": ["libmysqlclient-dev"], "runtime_packages": ["libmysqlclient21"], "constraints": [ { "os": "linux", - "distribution": "ubuntu" + "distribution": "ubuntu", + "versions": ["20.04", "22.04"] } ] }, diff --git a/rules/pango.json b/rules/pango.json index b8601e4..9b19f96 100644 --- a/rules/pango.json +++ b/rules/pango.json @@ -11,6 +11,20 @@ "libpangoxft-1.0-0", "pango1.0-tools" ], + "constraints": [ + { + "os": "linux", + "distribution": "ubuntu", + "versions": ["20.04", "22.04"] + }, + { + "os": "linux", + "distribution": "debian" + } + ] + }, + { + "packages": ["libpango1.0-dev"], "constraints": [ { "os": "linux",