From 1be510f9529cb082f802408b472a77d074b394c0 Mon Sep 17 00:00:00 2001 From: Nicolas Vigier Date: Sun, 14 Apr 2013 13:46:12 +0000 Subject: Add zarb MLs html archives --- zarb-ml/mageia-sysadm/2011-January/002386.html | 171 +++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 zarb-ml/mageia-sysadm/2011-January/002386.html (limited to 'zarb-ml/mageia-sysadm/2011-January/002386.html') diff --git a/zarb-ml/mageia-sysadm/2011-January/002386.html b/zarb-ml/mageia-sysadm/2011-January/002386.html new file mode 100644 index 000000000..7d5d05e56 --- /dev/null +++ b/zarb-ml/mageia-sysadm/2011-January/002386.html @@ -0,0 +1,171 @@ + + + + [Mageia-sysadm] [338] Ugly code rejecting submit when buildrequires are missing + + + + + + + + + +

[Mageia-sysadm] [338] Ugly code rejecting submit when buildrequires are missing

+ root at mageia.org + root at mageia.org +
+ Sat Jan 22 15:49:04 CET 2011 +

+
+ +
Revision: 338
+Author:   pterjan
+Date:     2011-01-22 15:49:03 +0100 (Sat, 22 Jan 2011)
+Log Message:
+-----------
+Ugly code rejecting submit when buildrequires are missing
+
+Added Paths:
+-----------
+    build_system/mdv-youri-submit/trunk/lib/Youri/Submit/Check/Deps.pm
+
+Added: build_system/mdv-youri-submit/trunk/lib/Youri/Submit/Check/Deps.pm
+===================================================================
+--- build_system/mdv-youri-submit/trunk/lib/Youri/Submit/Check/Deps.pm	                        (rev 0)
++++ build_system/mdv-youri-submit/trunk/lib/Youri/Submit/Check/Deps.pm	2011-01-22 14:49:03 UTC (rev 338)
+@@ -0,0 +1,87 @@
++package Youri::Submit::Check::Deps;
++
++=head1 NAME
++
++Youri::Submit::Check::Deps - Check dependencies
++
++=head1 DESCRIPTION
++
++This check plugin rejects packages with unresolved dependencies.
++
++=cut
++
++use warnings;
++use strict;
++use Carp;
++use Youri::Media::URPM;
++use base qw/Youri::Submit::Check/;
++
++sub resolvedep {
++    my ($media, @requires) = @_;
++
++    my @errors;
++    my $index = sub {
++        my ($package) = @_;
++
++	my @provides = $package->get_provides();
++
++	@requires = grep {
++	    my $require = $_;
++	    my $notfound = 1;
++            foreach my $provide (@provides) {
++                next unless $provide->[Youri::Package::DEPENDENCY_NAME] eq $require->[Youri::Package::DEPENDENCY_NAME];
++                if ($require->[Youri::Package::DEPENDENCY_RANGE]) {
++                    next unless $package->check_ranges_compatibility($provide->[Youri::Package::DEPENDENCY_RANGE], $require->[Youri::Package::DEPENDENCY_RANGE]);
++	        }
++	        $notfound = 0;
++	    }
++
++            if ($notfound && $require->[Youri::Package::DEPENDENCY_NAME] =~ m|/|) {
++                foreach my $file ($package->get_files()) {
++		    next unless $file eq $require->[Youri::Package::DEPENDENCY_NAME];
++		    $notfound = 0;
++		    last;
++	        }
++            }
++	    $notfound;
++        } @requires;
++    };
++    $media->traverse_headers($index);
++    foreach my $require (@requires) {
++	    push (@errors, "Unresolved dep on " . $require->[Youri::Package::DEPENDENCY_NAME]);
++    }
++    return @errors;
++}
++
++sub run {
++    my ($self, $package, $repository, $target, $define) = @_;
++    croak "Not a class method" unless ref $self;
++
++    # FIXME Define some Youri::Media with allowed_deps in the config and
++    # match target + section to a media
++    my $section = $repository->_get_section($package, $target, $define);
++    return unless $target eq "cauldron" && $section eq 'core/release';
++
++    my @requires = $package->get_requires();
++    
++    my $path = $repository->get_install_root() . "/" . $target;
++    # FIXME we need dependencies on all archs except for ExclusiveArch
++    my $arch = 'i586';
++#    foreach my $arch ($repository->get_extra_arches()) {
++        my $media = new Youri::Media::URPM(name => "core.".$arch,
++                                           type => "binary",
++					   hdlist => "$path/$arch/media/$section/media_info/hdlist.cz");
++    return resolvedep($media, @requires);
++#    }
++
++}
++
++=head1 COPYRIGHT AND LICENSE
++
++Copyright (C) 2011, YOURI project
++
++This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
++
++=cut
++
++1;
+-------------- next part --------------
+An HTML attachment was scrubbed...
+URL: </pipermail/mageia-sysadm/attachments/20110122/3f04e3ea/attachment.html>
+
+ + + + + + + + + + + + +
+

+ +
+More information about the Mageia-sysadm +mailing list
+ -- cgit v1.2.1