diff options
Diffstat (limited to 'zarb-ml/mageia-sysadm/2011-January/002386.html')
-rw-r--r-- | zarb-ml/mageia-sysadm/2011-January/002386.html | 171 |
1 files changed, 171 insertions, 0 deletions
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 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> + <HEAD> + <TITLE> [Mageia-sysadm] [338] Ugly code rejecting submit when buildrequires are missing + </TITLE> + <LINK REL="Index" HREF="index.html" > + <LINK REL="made" HREF="mailto:mageia-sysadm%40mageia.org?Subject=Re%3A%20%5BMageia-sysadm%5D%20%5B338%5D%20Ugly%20code%20rejecting%20submit%20when%20buildrequires%0A%09are%20missing&In-Reply-To=%3C20110122144904.3251642DA6%40valstar.mageia.org%3E"> + <META NAME="robots" CONTENT="index,nofollow"> + <META http-equiv="Content-Type" content="text/html; charset=us-ascii"> + <LINK REL="Previous" HREF="002385.html"> + <LINK REL="Next" HREF="002387.html"> + </HEAD> + <BODY BGCOLOR="#ffffff"> + <H1>[Mageia-sysadm] [338] Ugly code rejecting submit when buildrequires are missing</H1> + <B>root at mageia.org</B> + <A HREF="mailto:mageia-sysadm%40mageia.org?Subject=Re%3A%20%5BMageia-sysadm%5D%20%5B338%5D%20Ugly%20code%20rejecting%20submit%20when%20buildrequires%0A%09are%20missing&In-Reply-To=%3C20110122144904.3251642DA6%40valstar.mageia.org%3E" + TITLE="[Mageia-sysadm] [338] Ugly code rejecting submit when buildrequires are missing">root at mageia.org + </A><BR> + <I>Sat Jan 22 15:49:04 CET 2011</I> + <P><UL> + <LI>Previous message: <A HREF="002385.html">[Mageia-sysadm] [337] Add a means to filter out users who arent allowed to reset passwords with only +</A></li> + <LI>Next message: <A HREF="002387.html">[Mageia-sysadm] [878] Enable my new rejection of submits with missing buildrequires +</A></li> + <LI> <B>Messages sorted by:</B> + <a href="date.html#2386">[ date ]</a> + <a href="thread.html#2386">[ thread ]</a> + <a href="subject.html#2386">[ subject ]</a> + <a href="author.html#2386">[ author ]</a> + </LI> + </UL> + <HR> +<!--beginarticle--> +<PRE>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> +</PRE> + + + + + + + + + + + +<!--endarticle--> + <HR> + <P><UL> + <!--threads--> + <LI>Previous message: <A HREF="002385.html">[Mageia-sysadm] [337] Add a means to filter out users who arent allowed to reset passwords with only +</A></li> + <LI>Next message: <A HREF="002387.html">[Mageia-sysadm] [878] Enable my new rejection of submits with missing buildrequires +</A></li> + <LI> <B>Messages sorted by:</B> + <a href="date.html#2386">[ date ]</a> + <a href="thread.html#2386">[ thread ]</a> + <a href="subject.html#2386">[ subject ]</a> + <a href="author.html#2386">[ author ]</a> + </LI> + </UL> + +<hr> +<a href="https://www.mageia.org/mailman/listinfo/mageia-sysadm">More information about the Mageia-sysadm +mailing list</a><br> +</body></html> |