Compare commits

...

3 Commits

Author SHA1 Message Date
Sławomir Nizio 12e2ccd510 git-hooks: new scripts 2017-05-23 21:01:01 +02:00
Ettore Di Giacinto b91870c72d sabayon-buildpackages: add support for DETECT_OBSOLETE and TARGET_OVERLAY 2017-05-21 14:16:04 +02:00
Ettore Di Giacinto b1726fdb4d builder: add DETECT_OBSOLETE 2017-05-21 14:13:59 +02:00
5 changed files with 126 additions and 13 deletions
+11 -4
View File
@@ -41,6 +41,8 @@ my $qualityassurance_checks = $ENV{QA_CHECKS} // 0;
my $remote_conf_portdir = $ENV{REMOTE_CONF_PORTDIR}; my $remote_conf_portdir = $ENV{REMOTE_CONF_PORTDIR};
my $remote_portdir = $ENV{REMOTE_PORTDIR}; my $remote_portdir = $ENV{REMOTE_PORTDIR};
my $pretend = $ENV{PRETEND} // 0; my $pretend = $ENV{PRETEND} // 0;
my $obsoleted = $ENV{DETECT_OBSOLETE} // 0;
my $target_overlay = $ENV{TARGET_OVERLAY};
my $make_conf = $ENV{MAKE_CONF}; my $make_conf = $ENV{MAKE_CONF};
@@ -236,8 +238,9 @@ sub uniq {
keys %{ { map { $_ => 1 } @_ } }; keys %{ { map { $_ => 1 } @_ } };
} }
sub detect_useflags # Detect useflags defined as [-alsa,avahi] in atom,
{ # Detect useflags defined as [-alsa,avahi] in atom, and fill $hash within the $target sub-hash # and fill $hash within the $target sub-hash
sub detect_useflags {
my ( $target, $packages ) = @_; my ( $target, $packages ) = @_;
my @packs = @{$packages}; my @packs = @{$packages};
for my $i ( 0 .. $#packs ) { for my $i ( 0 .. $#packs ) {
@@ -316,13 +319,12 @@ say "\t* " . $_ for @ARGV;
say "[*] Syncing configurations files, Layman and Portage"; say "[*] Syncing configurations files, Layman and Portage";
if ($pretend) { if ($pretend) {
say "[*] PRETEND enabled, no real action will be performed."; say "[*] PRETEND enabled, no real action will be performed.";
say " Bear in mind that in such way the list of packages"; say " Bear in mind that in such way the list of packages";
say " that emerge will try to compile will be bigger"; say " that emerge will try to compile will be bigger";
$equo_install_args .= " -p"; $equo_install_args .= " -p";
$emerge_defaults_args.=" -p" $emerge_defaults_args .= " -p";
} }
# Syncronizing portage configuration and adding overlays # Syncronizing portage configuration and adding overlays
@@ -598,6 +600,11 @@ if ( $qualityassurance_checks == 1 ) {
} }
} }
if ( $obsoleted and $target_overlay ) {
say "*** Detecting obsoletes ***";
system("sabayon-detectobsolete --overlay ${target_overlay}");
}
# Copy files to artifacts folder # Copy files to artifacts folder
system( system(
"mkdir -p $artifacts_folder;cp -rfv /usr/portage/packages $artifacts_folder" "mkdir -p $artifacts_folder;cp -rfv /usr/portage/packages $artifacts_folder"
+84
View File
@@ -0,0 +1,84 @@
#!/usr/bin/env perl
# This code is licenced GPLv2 or newer.
use warnings;
use strict;
use 5.010;
my $g_thres = shift // 3;
sub set_atoms {
my %atoms = ();
my $fh = shift;
while (my $line = <$fh>) {
chomp $line;
my @words = split(' ', $line, 2);
next if $words[0] eq "??"; # allow "dangling" files
my $what = $words[1];
@words = split(m:/:, $what);
my $pkg;
if (@words >= 2) {
$pkg = join("/", @words[0..1]);
} else {
$pkg = $words[0]
}
$atoms{$pkg} = 1;
}
keys %atoms
}
sub num {
my $what = shift;
my @arr = @_;
my $num = 0;
for (@arr) {
$num++ if index($_, "$what-") == 0
}
$num
}
sub replace {
my $atom = shift;
my @arr = @_;
my @new_arr;
for my $item (@arr) {
if( index($item, $atom) == 0 ) {
1;
} else {
push @new_arr, $item;
}
}
push @new_arr, "$atom*";
@new_arr;
}
# try to make (a*, b, c*) from (a-1, a, a-2, b, c, c-1),
# for example, if numberOf(/^a-?/) >= $thres
sub do_reduce {
my $thres = shift;
my @atoms = @_;
my @processed_atoms = @atoms;
for my $atom (@atoms) {
@processed_atoms = replace($atom, @processed_atoms)
if (num($atom, @processed_atoms) >= $thres);
}
@processed_atoms
}
#my @atoms = set_atoms(*DATA);
my @atoms = set_atoms(*STDIN);
@atoms = do_reduce($g_thres, @atoms);
say join ",", sort @atoms;
__DATA__
M net-p2p/transmission-base/metadata.xml
M net-p2p/transmission-cli/metadata.xml
M net-p2p/transmission-daemon/metadata.xml
M net-p2p/transmission-gtk/metadata.xml
M net-p2p/transmission-qt4/metadata.xml
M net-p2p/transmission/metadata.xml
M cat/pkg-1
M cat/pkg-2
M cat/pkg
M net-p2p/nic
?? betr.pl
+20
View File
@@ -0,0 +1,20 @@
#!/bin/sh
# This code is licenced GPLv2 or newer.
# An example hook script to prepare the commit log message.
# Called by "git commit" with the name of the file that has the
# commit message, followed by the description of the commit
# message's source. The hook's purpose is to edit the commit
# message file. If the hook fails with a non-zero status,
# the commit is aborted.
_out=$(git status -s | overlays-commit-msg.pl)
_ver=$(git status -s | sed -rn 's/^[AR] *(.* -> )?.*-([^-]+)\.ebuild$/\2/p' | head -n 1)
_bump=${_ver:+version bump to $_ver}
case $2 in
#message)
# sed -i -e "1s:^:[$_subdir/$_curdir] :" "$1" ;;
"")
sed -i -e "1i[$_out] $_bump" "$1" ;;
esac
+2
View File
@@ -57,6 +57,8 @@ docker_volumes=( -v "$OUTPUT_DIR:/usr/portage/packages" )
[ -z "$REMOTE_PORTDIR" ] || docker_env+=(-e "REMOTE_PORTDIR=$REMOTE_PORTDIR") [ -z "$REMOTE_PORTDIR" ] || docker_env+=(-e "REMOTE_PORTDIR=$REMOTE_PORTDIR")
[ -z "$ETP_NOCACHE" ] || docker_env+=(-e "ETP_NOCACHE=$ETP_NOCACHE") [ -z "$ETP_NOCACHE" ] || docker_env+=(-e "ETP_NOCACHE=$ETP_NOCACHE")
[ -z "$PRETEND" ] || docker_env+=(-e "PRETEND=$PRETEND") [ -z "$PRETEND" ] || docker_env+=(-e "PRETEND=$PRETEND")
[ -z "$DETECT_OBSOLETE" ] || docker_env+=(-e "DETECT_OBSOLETE=$DETECT_OBSOLETE")
[ -z "$TARGET_OVERLAY" ] || docker_env+=(-e "TARGET_OVERLAY=$TARGET_OVERLAY")
[ -d "$LOCAL_OVERLAY" ] && docker_volumes+=(-v "$LOCAL_OVERLAY:/usr/local/local_portage") [ -d "$LOCAL_OVERLAY" ] && docker_volumes+=(-v "$LOCAL_OVERLAY:/usr/local/local_portage")
if [ -e $MAKE_CONF ]; then if [ -e $MAKE_CONF ]; then
Regular → Executable
View File