diff --git a/Makefile b/Makefile index a4197e9..14c400e 100644 --- a/Makefile +++ b/Makefile @@ -27,3 +27,4 @@ install: install -d $(DESTDIR)/$(UBINDIR) install -m 0755 sabayon-buildpackages $(DESTDIR)/$(UBINDIR)/ install -m 0755 sabayon-createrepo $(DESTDIR)/$(UBINDIR)/ + install -m 0755 sabayon-entropypreservedlibs $(DESTDIR)/$(UBINDIR)/ diff --git a/sabayon-buildpackages b/sabayon-buildpackages index 09b13a4..4f41c3b 100755 --- a/sabayon-buildpackages +++ b/sabayon-buildpackages @@ -7,6 +7,7 @@ DOCKER_PULL_IMAGE="${DOCKER_PULL_IMAGE:-0}" MAKE_CONF="${MAKE_CONF:-$SAB_WORKSPACE/specs/make.conf}" OUTPUT_DIR="${OUTPUT_DIR:-$SAB_WORKSPACE/portage_artifacts/}" LOCAL_OVERLAY="${LOCAL_OVERLAY:-$SAB_WORKSPACE/local_overlay}" +ENTROPY_REPOSITORY="${ENTROPY_REPOSITORY:-main}" # Can be weekly, main, testing . /sbin/sabayondevkit-functions.sh @@ -28,6 +29,8 @@ docker_volumes=( -v "$OUTPUT_DIR:/usr/portage/packages" ) [ -z "$EQUO_INSTALL_VERSION" ] || docker_env+=(-e "EQUO_INSTALL_VERSION=$EQUO_INSTALL_VERSION") [ -z "$EQUO_SPLIT_INSTALL" ] || docker_env+=(-e "EQUO_SPLIT_INSTALL=$EQUO_SPLIT_INSTALL") [ -z "$ARTIFACTS_DIR" ] || docker_env+=(-e "ARTIFACTS_DIR=$ARTIFACTS_DIR") +[ -z "$ENTROPY_REPOSITORY" ] || docker_env+=(-e "ENTROPY_REPOSITORY=$ENTROPY_REPOSITORY") + [ -d "$LOCAL_OVERLAY" ] && docker_volumes+=(-v "$LOCAL_OVERLAY:/usr/local/portage") if [ -e $MAKE_CONF ]; then diff --git a/sabayon-entropypreservedlibs b/sabayon-entropypreservedlibs new file mode 100755 index 0000000..b06b7a8 --- /dev/null +++ b/sabayon-entropypreservedlibs @@ -0,0 +1,34 @@ +#!/usr/bin/perl +# Author: mudler@sabayonlinux.org, skullbocks@sabayonlinux.org + +use strict; +use DBI; +use feature 'say'; + +my $arch = $ENV{ARCH} // "amd64"; + +my $dbh = DBI->connect( + "dbi:SQLite:dbname=/var/lib/entropy/client/database/$arch/equo.db", + "", "", { RaiseError => 1 }, +) or die $DBI::errstr; +my $to_build = {}; + +my $sth = $dbh->prepare( +"SELECT DISTINCT baseinfo.category, baseinfo.name, baseinfo.version FROM baseinfo JOIN needed_libs ON baseinfo.idpackage = needed_libs.idpackage JOIN preserved_libs ON needed_libs.soname = preserved_libs.library" +); +$sth->execute(); + +my $row; +while ( $row = $sth->fetchrow_arrayref() ) { + $to_build->{"@$row[0]/@$row[1]-@$row[2]"}++; +} +$sth->finish(); + +my $to_install = join( " ", keys %{$to_build} ); +if ( $to_install ne "" ) { + say "Those packages seems to request libs no longer available: $to_install"; +} +else { + say "No packages request outdated libs"; +} +$dbh->disconnect();