From e4ae5b43d724faa74970d2b568d9c54df473b51d9882b42a6c46ab26180c1dd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tina=20M=C3=BCller?= Date: Mon, 15 Jul 2024 20:14:49 +0000 Subject: [PATCH] Normalize CPAN version See https://github.com/openSUSE/cpanspec/issues/47 for details OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Algorithm-Munkres?expand=0&rev=4 --- cpanspec.yml | 35 +++++++++++++ perl-Algorithm-Munkres.spec | 99 ++++++++++++++++++++++++------------- 2 files changed, 100 insertions(+), 34 deletions(-) create mode 100644 cpanspec.yml diff --git a/cpanspec.yml b/cpanspec.yml new file mode 100644 index 0000000..852cda0 --- /dev/null +++ b/cpanspec.yml @@ -0,0 +1,35 @@ +--- +#description_paragraphs: 3 +#description: |- +# override description from CPAN +#summary: override summary from CPAN +#no_testing: broken upstream +#sources: +# - source1 +# - source2 +#patches: +# foo.patch: -p1 +# bar.patch: +# baz.patch: PATCH-FIX-OPENSUSE +#preamble: |- +# BuildRequires: gcc-c++ +#post_prep: |- +# hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'` +# sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL +#post_build: |- +# rm unused.files +#post_install: |- +# sed on %{name}.files +license: GPL-2.0-or-later +#skip_noarch: 1 +#custom_build: |- +#./Build build flags=%{?_smp_mflags} --myflag +#custom_test: |- +#startserver && make test +#ignore_requires: Bizarre::Module +#skip_doc: regexp_to_skip_for_doc.* +#add_doc: files to add to docs +#misc: |- +#anything else to be added to spec file +#follows directly after %files section, so it can contain new blocks or also +#changes to %files section diff --git a/perl-Algorithm-Munkres.spec b/perl-Algorithm-Munkres.spec index fa1f13d..893ca75 100644 --- a/perl-Algorithm-Munkres.spec +++ b/perl-Algorithm-Munkres.spec @@ -1,7 +1,7 @@ # -# spec file for package perl-Algorithm-Munkres (Version 0.08) +# spec file for package perl-Algorithm-Munkres # -# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,60 +12,91 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # -# norootforbuild -Name: perl-Algorithm-Munkres %define cpan_name Algorithm-Munkres -Summary: Perl extension for Munkres' solution to -Version: 0.08 -Release: 1 -License: CHECK(GPL+ or Artistic) -Group: Development/Libraries/Perl -Url: http://search.cpan.org/dist/Algorithm-Munkres/ -Source: http://www.cpan.org/modules/by-module/Algorithm/Algorithm-Munkres-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-build -%{perl_requires} +Name: perl-Algorithm-Munkres +Version: 0.80.0 +Release: 0 +# 0.08 -> normalize -> 0.80.0 +%define cpan_version 0.08 +#Upstream: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +License: GPL-2.0-or-later +Summary: Munkres.pm +URL: https://metacpan.org/release/%{cpan_name} +Source0: https://cpan.metacpan.org/authors/id/T/TP/TPEDERSE/%{cpan_name}-%{cpan_version}.tar.gz +Source1: cpanspec.yml BuildArch: noarch BuildRequires: perl BuildRequires: perl-macros +Provides: perl(Algorithm::Munkres) = %{version} +%undefine __perllib_provides +%{perl_requires} %description -Assignment Problem: Given N jobs, N workers and the time taken by each -worker to complete a job then how should the assignment of a Worker to a -Job be done, so as to minimize the time taken. + Assignment Problem: Given N jobs, N workers and the time taken by + each worker to complete a job then how should the assignment of a + Worker to a Job be done, so as to minimize the time taken. -Authors: --------- - Anagha Kulkarni - Ted Pedersen + Thus if we have 3 jobs p,q,r and 3 workers x,y,z such that: + x y z + p 2 4 7 + q 3 9 5 + r 8 2 9 + + where the cell values of the above matrix give the time required + for the worker(given by column name) to complete the job(given by + the row name) + + then possible solutions are: + Total + 1. 2, 9, 9 20 + 2. 2, 2, 5 9 + 3. 3, 4, 9 16 + 4. 3, 2, 7 12 + 5. 8, 9, 7 24 + 6. 8, 4, 5 17 + + Thus (2) is the optimal solution for the above problem. + This kind of brute-force approach of solving Assignment problem + quickly becomes slow and bulky as N grows, because the number of + possible solution are N! and thus the task is to evaluate each + and then find the optimal solution.(If N=10, number of possible + solutions: 3628800 !) + Munkres' gives us a solution to this problem, which is implemented + in this module. + + This module also solves Assignment problem for rectangular matrices + (M x N) by converting them to square matrices by padding zeros. ex: + If input matrix is: + [2, 4, 7, 9], + [3, 9, 5, 1], + [8, 2, 9, 7] + i.e 3 x 4 then we will convert it to 4 x 4 and the modified input + matrix will be: + [2, 4, 7, 9], + [3, 9, 5, 1], + [8, 2, 9, 7], + [0, 0, 0, 0] %prep -%setup -q -n %{cpan_name}-%{version} +%autosetup -n %{cpan_name}-%{cpan_version} %build -%{__perl} Makefile.PL INSTALLDIRS=vendor -%{__make} %{?_smp_mflags} +perl Makefile.PL INSTALLDIRS=vendor +%make_build %check -%{__make} test +make test %install %perl_make_install -# do not perl_process_packlist (noarch) -# remove .packlist file -%{__rm} -rf $RPM_BUILD_ROOT%perl_vendorarch -# remove perllocal.pod file -%{__rm} -rf $RPM_BUILD_ROOT%perl_archlib +%perl_process_packlist %perl_gen_filelist -%clean -%{__rm} -rf $RPM_BUILD_ROOT - %files -f %{name}.files -%defattr(-,root,root,-) %doc Changes README %changelog