Bug 450013 - Review Request: testopia - bugzilla extended to add test case management
Review Request: testopia - bugzilla extended to add test case management
Status: CLOSED CANTFIX
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Jon Stanley
Fedora Extras Quality Assurance
:
Depends On: 450411 450412
Blocks: FE-Legal
  Show dependency treegraph
 
Reported: 2008-06-04 15:08 EDT by Dave Malcolm
Modified: 2013-01-10 16:46 EST (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-08-06 19:11:19 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)
For reference, patch showing what I did to bugzilla.spec to get to testopia.spec (5.48 KB, patch)
2008-06-04 15:16 EDT, Dave Malcolm
no flags Details | Diff
extjs license as it appears in testopia tarball (2.26 KB, text/plain)
2008-06-09 18:03 EDT, Dave Malcolm
no flags Details


External Trackers
Tracker ID Priority Status Summary Last Updated
Mozilla Foundation 409309 None None None Never

  None (edit)
Description Dave Malcolm 2008-06-04 15:08:48 EDT
Spec URL: http://dmalcolm.fedorapeople.org/testopia.spec
SRPM URL: http://dmalcolm.fedorapeople.org/testopia-3.0.4-1.tr2.0_RC1.fc10.src.rpm
Description: 
Testopia is a test case management system built as an extension of Bugzilla,
allowing test plans and result reporting to be integrated into the Bugzilla
web UI.

This package is a version of Bugzilla built with the Testopia extensions; if
you wish to deploy Testopia, install this package rather than "bugzilla".  As 
with the regular "bugzilla" package it requires a database engine installed 
- either MySQL or PostgreSQL.  Without one of these database engines, Testopia
will not work.

Testopia (http://www.mozilla.org/projects/testopia/) is an extension of Bugzilla (http://www.bugzilla.org/) that adds test-case management, allowing test plans and result reporting to be integrated into the Bugzilla web UI. It patches the core of Bugzilla, and hence has to be built as part of the core package, rather than a separate srpm.

Not all Bugzilla deployments will want Testopia, so for now I'm packaging Testopia in Fedora as a separate package.  The "testopia" package is deliberately as close as possible to the "bugzilla" package for simplicity's sake; it is intended that a sysadmin will install one or the other, and hence the testopia package conflict with bugzilla packages.

See bug 449401 for a discussion of this
Comment 1 Dave Malcolm 2008-06-04 15:16:50 EDT
Created attachment 308382 [details]
For reference, patch showing what I did to bugzilla.spec to get to testopia.spec
Comment 2 Dave Malcolm 2008-06-04 15:43:34 EDT
Successful scratch build here:
http://koji.fedoraproject.org/koji/taskinfo?taskID=646051
Comment 3 Jon Stanley 2008-06-07 13:47:33 EDT
taking review
Comment 4 Jon Stanley 2008-06-07 15:31:20 EDT
OK - Package meets naming and packaging guidelines
OK? - Spec file matches base package name.
OK Spec has consistant macro usage.
OK Meets Packaging Guidelines.
SEE NOTES - License
MUSTFIX - License field in spec matches
MUSTFIX - License file included in package
OK - Spec in American English
OK - Spec is legible.
OK - Sources match upstream md5sum:

29847f8f095d56212e167a0bde1b2d70  testopia-2.0-RC1.tar.gz
29847f8f095d56212e167a0bde1b2d70  ../build/SOURCES/testopia-2.0-RC1.tar.gz
--
f55a3f3cde9cf1bf56492d18c8f7afe4  ../bugzilla-3.0.4.tar.gz
f55a3f3cde9cf1bf56492d18c8f7afe4  ../build/SOURCES/bugzilla-3.0.4.tar.gz

N/A - Package needs ExcludeArch
OK - BuildRequires correct
N/A - Spec handles locales/find_lang
N/A - Package is relocatable and has a reason to be.
OK - Package has %defattr and permissions on files is good.
OK - Package has a correct %clean section.
OK - Package has correct buildroot
%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
OK- Package is code or permissible content.
OK - Doc subpackage needed/used.
OK - Packages %doc files don't affect runtime.

N/A - Headers/static libs in -devel subpackage.
N/A - Spec has needed ldconfig in post and postun
N/A - .pc files in -devel subpackage/requires pkgconfig
N/A - .so files in -devel subpackage.
N/A - -devel package Requires: %{name} = %{version}-%{release}
N/A - .la files are removed.

N/A - Package is a GUI app and has a .desktop file

OK - Package compiles and builds on at least one arch.
OK - Package has no duplicate files in %files.
SEE NOTES - Package doesn't own any directories other packages own.
OK- Package owns all the directories it creates.
SEE NOTES- No rpmlint output:
[jstanley@rugrat testopia]$ rpmlint testopia-3.0.4-1.tr2.0_RC1.fc10.noarch.rpm 
testopia.noarch: E: non-executable-script /usr/share/bugzilla/cron.daily 0644
testopia.noarch: E: non-standard-gid /etc/bugzilla apache
testopia.noarch: E: non-standard-dir-perm /etc/bugzilla 0750
testopia.noarch: W: invalid-license MPL

OK - final provides and requires are sane:
(include output of for i in *rpm; do echo $i; rpm -qp --provides $i; echo =; rpm
-qp --requires $i; echo; done

manually indented after checking each line.  I also remove the rpmlib junk and
anything provided by glibc.)
testopia-3.0.4-1.tr2.0_RC1.fc10.noarch.rpm
config(testopia) = 3.0.4-1.tr2.0_RC1.fc10
perl(Bugzilla)  
perl(Bugzilla::Attachment)  
perl(Bugzilla::Attachment::PatchReader)  
perl(Bugzilla::Auth)  
perl(Bugzilla::Auth::Login)  
perl(Bugzilla::Auth::Login::CGI)  
perl(Bugzilla::Auth::Login::Cookie)  
perl(Bugzilla::Auth::Login::Env)  
perl(Bugzilla::Auth::Login::Stack)  
perl(Bugzilla::Auth::Persist::Cookie)  
perl(Bugzilla::Auth::Verify)  
perl(Bugzilla::Auth::Verify::DB)  
perl(Bugzilla::Auth::Verify::LDAP)  
perl(Bugzilla::Auth::Verify::Stack)  
perl(Bugzilla::Bug)  
perl(Bugzilla::BugMail)  
perl(Bugzilla::CGI)  
perl(Bugzilla::Chart)  
perl(Bugzilla::Classification)  
perl(Bugzilla::Component)  
perl(Bugzilla::Config)  
perl(Bugzilla::Config::Admin)  
perl(Bugzilla::Config::Attachment)  
perl(Bugzilla::Config::Auth)  
perl(Bugzilla::Config::BugChange)  
perl(Bugzilla::Config::BugFields)  
perl(Bugzilla::Config::BugMove)  
perl(Bugzilla::Config::Common)  
perl(Bugzilla::Config::Core)  
perl(Bugzilla::Config::DependencyGraph)  
perl(Bugzilla::Config::GroupSecurity)  
perl(Bugzilla::Config::L10n)  
perl(Bugzilla::Config::LDAP)  
perl(Bugzilla::Config::MTA)  
perl(Bugzilla::Config::PatchViewer)  
perl(Bugzilla::Config::Query)  
perl(Bugzilla::Config::ShadowDB)  
perl(Bugzilla::Config::Testopia)  
perl(Bugzilla::Config::UserMatch)  
perl(Bugzilla::Constants)  
perl(Bugzilla::DB)  
perl(Bugzilla::DB::Mysql)  
perl(Bugzilla::DB::Pg)  
perl(Bugzilla::DB::Schema)  
perl(Bugzilla::DB::Schema::Mysql)  
perl(Bugzilla::DB::Schema::Pg)  
perl(Bugzilla::Error)  
perl(Bugzilla::Field)  
perl(Bugzilla::Flag)  
perl(Bugzilla::FlagType)  
perl(Bugzilla::Group)  
perl(Bugzilla::Hook)  
perl(Bugzilla::Install)  
perl(Bugzilla::Install::DB)  
perl(Bugzilla::Install::Filesystem)  
perl(Bugzilla::Install::Localconfig)  
perl(Bugzilla::Install::Requirements)  
perl(Bugzilla::Keyword)  
perl(Bugzilla::Mailer)  
perl(Bugzilla::Milestone)  
perl(Bugzilla::Object)  
perl(Bugzilla::Product)  
perl(Bugzilla::Search)  
perl(Bugzilla::Search::Quicksearch)  
perl(Bugzilla::Search::Saved)  
perl(Bugzilla::Series)  
perl(Bugzilla::Template)  
perl(Bugzilla::Template::Plugin::Bugzilla)  
perl(Bugzilla::Template::Plugin::Hook)  
perl(Bugzilla::Template::Plugin::User)  
perl(Bugzilla::Testopia::Attachment)  
perl(Bugzilla::Testopia::Build)  
perl(Bugzilla::Testopia::Category)  
perl(Bugzilla::Testopia::Classification)  
perl(Bugzilla::Testopia::Constants)  
perl(Bugzilla::Testopia::Environment)  
perl(Bugzilla::Testopia::Environment::Category)  
perl(Bugzilla::Testopia::Environment::Element)  
perl(Bugzilla::Testopia::Environment::Property)  
perl(Bugzilla::Testopia::Environment::Xml)  
perl(Bugzilla::Testopia::Product)  
perl(Bugzilla::Testopia::Report)  
perl(Bugzilla::Testopia::Search)  
perl(Bugzilla::Testopia::Table)  
perl(Bugzilla::Testopia::TestCase)  
perl(Bugzilla::Testopia::TestCaseRun)  
perl(Bugzilla::Testopia::TestPlan)  
perl(Bugzilla::Testopia::TestRun)  
perl(Bugzilla::Testopia::TestTag)  
perl(Bugzilla::Testopia::Util)  
perl(Bugzilla::Testopia::Xml)  
perl(Bugzilla::Testopia::XmlReferences)  
perl(Bugzilla::Testopia::XmlTestCase)  
perl(Bugzilla::Token)  
perl(Bugzilla::Update)  
perl(Bugzilla::User)  
perl(Bugzilla::User::Setting)  
perl(Bugzilla::User::Setting::Skin)  
perl(Bugzilla::Util)  
perl(Bugzilla::Version)  
perl(Bugzilla::WebService)  
perl(Bugzilla::WebService::Bug)  
perl(Bugzilla::WebService::Bugzilla)  
perl(Bugzilla::WebService::Constants)  
perl(Bugzilla::WebService::Product)  
perl(Bugzilla::WebService::Testopia::Build)  
perl(Bugzilla::WebService::Testopia::Environment)  
perl(Bugzilla::WebService::Testopia::Product)  
perl(Bugzilla::WebService::Testopia::TestCase)  
perl(Bugzilla::WebService::Testopia::TestCaseRun)  
perl(Bugzilla::WebService::Testopia::TestPlan)  
perl(Bugzilla::WebService::Testopia::TestRun)  
perl(Bugzilla::WebService::User)  
perl(Bugzilla::WebService::XMLRPC::Transport::HTTP::CGI)  
perl(Support::Files)  
perl(Support::Systemexec)  
perl(Support::Templates)  
testopia = 3.0.4-1.tr2.0_RC1.fc10
=
/bin/sh  
/bin/sh  
/usr/bin/env  
/usr/bin/perl  
config(testopia) = 3.0.4-1.tr2.0_RC1.fc10
mod_perl  
patchutils  
perl >= 0:5.008
perl >= 0:5.008001
perl(AnyDBM_File)  
perl(Apache2::Const)  
perl(Apache2::ServerUtil)  
perl(Apache2::SizeLimit)  
perl(Bugzilla)  
perl(Bugzilla::Attachment)  
perl(Bugzilla::Attachment::PatchReader)  
perl(Bugzilla::Auth)  
perl(Bugzilla::Auth::Login::Stack)  
perl(Bugzilla::Auth::Persist::Cookie)  
perl(Bugzilla::Auth::Verify::Stack)  
perl(Bugzilla::Bug)  
perl(Bugzilla::BugMail)  
perl(Bugzilla::CGI)  
perl(Bugzilla::Chart)  
perl(Bugzilla::Classification)  
perl(Bugzilla::Component)  
perl(Bugzilla::Config)  
perl(Bugzilla::Config::Common)  
perl(Bugzilla::Constants)  
perl(Bugzilla::DB)  
perl(Bugzilla::DB::Schema)  
perl(Bugzilla::Error)  
perl(Bugzilla::Field)  
perl(Bugzilla::Flag)  
perl(Bugzilla::FlagType)  
perl(Bugzilla::Group)  
perl(Bugzilla::Hook)  
perl(Bugzilla::Install::Filesystem)  
perl(Bugzilla::Install::Localconfig)  
perl(Bugzilla::Install::Requirements)  
perl(Bugzilla::Keyword)  
perl(Bugzilla::Mailer)  
perl(Bugzilla::Milestone)  
perl(Bugzilla::Product)  
perl(Bugzilla::Search)  
perl(Bugzilla::Search::Quicksearch)  
perl(Bugzilla::Search::Saved)  
perl(Bugzilla::Series)  
perl(Bugzilla::Template)  
perl(Bugzilla::Testopia::Attachment)  
perl(Bugzilla::Testopia::Build)  
perl(Bugzilla::Testopia::Category)  
perl(Bugzilla::Testopia::Classification)  
perl(Bugzilla::Testopia::Constants)  
perl(Bugzilla::Testopia::Environment)  
perl(Bugzilla::Testopia::Environment::Category)  
perl(Bugzilla::Testopia::Environment::Element)  
perl(Bugzilla::Testopia::Environment::Property)  
perl(Bugzilla::Testopia::Environment::Xml)  
perl(Bugzilla::Testopia::Product)  
perl(Bugzilla::Testopia::Report)  
perl(Bugzilla::Testopia::Search)  
perl(Bugzilla::Testopia::Table)  
perl(Bugzilla::Testopia::TestCase)  
perl(Bugzilla::Testopia::TestCaseRun)  
perl(Bugzilla::Testopia::TestPlan)  
perl(Bugzilla::Testopia::TestRun)  
perl(Bugzilla::Testopia::TestTag)  
perl(Bugzilla::Testopia::Util)  
perl(Bugzilla::Testopia::Xml)  
perl(Bugzilla::Testopia::XmlReferences)  
perl(Bugzilla::Testopia::XmlTestCase)  
perl(Bugzilla::Token)  
perl(Bugzilla::Update)  
perl(Bugzilla::User)  
perl(Bugzilla::User::Setting)  
perl(Bugzilla::Util)  
perl(Bugzilla::Version)  
perl(Bugzilla::WebService)  
perl(Bugzilla::WebService::Constants)  
perl(CGI)  
perl(Class::CSV)  
perl(Class::Struct)  
perl(Cwd)  
perl(DBD::Pg)  
perl(DBI)  
perl(Data::Dumper)  
perl(Date::Format)  
perl(Date::Parse)  
perl(Email::Address)  
perl(Email::MIME)  
perl(Email::MIME::Attachment::Stripper)  
perl(Email::MIME::Modifier)  
perl(Email::Reply)  
perl(Email::Send)  
perl(Encode)  
perl(Encode::MIME::Header)  
perl(Errno)  
perl(Exporter)  
perl(Fcntl)  
perl(File::Basename)  
perl(File::Find)  
perl(File::Path)  
perl(File::Spec)  
perl(File::Spec::Functions)  
perl(File::Temp)  
perl(Getopt::Long)  
perl(Hash::Util)  
perl(IO::Dir)  
perl(IO::File)  
perl(IO::Handle)  
perl(JSON)  
perl(List::Util)  
perl(MIME::Base64)  
perl(MIME::Parser)  
perl(ModPerl::RegistryLoader)  
perl(Net::LDAP)  
perl(POSIX)  
perl(Pod::Usage)  
perl(Safe)  
perl(Socket)  
perl(Storable)  
perl(Template::Stash)  
perl(Test::Harness)  
perl(Text::Diff)  
perl(Time::Zone)  
perl(XML::Twig)  
perl(XMLRPC::Transport::HTTP)  
perl(base)  
perl(constant)  
perl(diagnostics)  
perl(fields)  
perl(integer)  
perl(lib)  
perl(strict)  
perl(vars)  
perl(warnings)  
perl-Email-Address  
perl-Email-MIME  
perl-Email-MIME-Attachment-Stripper  
perl-Email-MIME-Modifier  
perl-Email-Reply  
perl-Email-Send  
perl-Email-Simple  
perl-MIME-tools  
perl-SOAP-Lite  
perl-Template-Toolkit  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
smtpdaemon  
webserver  
which  

SHOULD Items:

OK- Should build in mock.
OK  - Should build on all supported archs
OK - Should function as described.
OK - Should have sane scriptlets.
SHOULDFIX - Should have subpackages require base package with fully versioned
depend.
OK - Should have dist tag
OK - Should package latest version

Issues:

1. License tag is not correct.  Should be at least MPLv1.1, if not 'MPLv1.1 and
GPLv3'

2. Licensing is a bit murky.  Testopia uses EXT-JS to provide the Ajax web
interface, and it is dual-licensed commercial and GPLv3. Bugzilla is not a
Mozilla tri-licensed product per http://www.mozilla.org/MPL/#source-code so I'm
not sure what they're doing here.

3. There are several 'error' outputs from rpmlint that I think are OK -
/etc/bugzilla contains passwords, etc.

4. Change the cron.daily script to be executable per the rpmlint output

Blocking FE-LEGAL due to item 2, hopefully this can be resolved quickly.  Maybe
just a quick note to upstream will help.
Comment 5 Jon Stanley 2008-06-07 15:37:31 EDT
Some things I forgot :)

5. The package owns directories that the bugzilla package proper owns, however,
there's a Conflicts, so I don't think that's a big problem.

6. The license text is not included as a %doc in the package

7. The subpackages don't require the base package
Comment 6 Jon Stanley 2008-06-07 18:08:14 EDT
This particular package doesn't actually install and work.  I've e-mailed Davve
about it, it exhibits various states of fail (though maybe it's the operator) :).
Comment 7 Dave Malcolm 2008-06-07 20:32:47 EDT
No, it was me; I broke the schema installation of the testopia-specific tables;
I'd only been testing on pre-created databases.  Will investigate; sorry
Comment 8 Dave Malcolm 2008-06-09 13:50:44 EDT
Problem was in my patching of bz_locations; 
extensionsdir was pointing at: /var/lib/bugzilla/extensions (empty) rather than:
/usr/share/bugzilla/extensions (which has
testopia/code/db_schema-abstract_schema.pl); hence not finding the testopia
extenstion and thus not extending the schema to cover the Testopia tables in
Bugzilla/DB/Schema.pm:_initialize

Working on a revised version, and on the other issues.
Comment 9 Dave Malcolm 2008-06-09 18:03:33 EDT
Created attachment 308756 [details]
extjs license as it appears in testopia tarball

The testopia/extjs/LICENSE.txt license as it appears in the testopia tarball
seems to indicate that it is LGPLv3.  However the license text on
http://extjs.com/products/license-faq.php seems to indicate GPLv3
Comment 10 Dave Malcolm 2008-06-09 22:11:59 EDT
Updated SRPM here:
http://dmalcolm.fedorapeople.org/testopia-3.0.4-1_1.tr2.0_RC1.fc10.src.rpm
and specfile at:
http://dmalcolm.fedorapeople.org/testopia.spec

This is still a work-in-progress, I'm afraid; it uses the correct extensions
location and thus correctly populates the schema, but seeing some issues trying
to actually creating test plans and cases.

Fixing the extensions location revealed that Testopia adds a hard requirement on
GD-Graph3D which stops checkinstall.pl

It appears to only be referenced in the code at
./template/en/default/testopia/reports/completion.png.tmpl:        USE my_graph
= GD.Graph.bars3d(275,250);
i.e. in one particular report, so shouldn't impact full functionality of the
package beyond that.  The above srpm patches out the requirement for now.
perl-GD-Graph3D doesn't seem to be packaged for Fedora yet.  Probably should fix
that before clearing review.
Comment 11 Dave Malcolm 2008-06-09 22:14:41 EDT
Issue with extensionsdir filed against bugzilla package as bug 450636
Comment 12 Jon Stanley 2008-06-10 08:12:06 EDT
I don't think the fact that it doesn't work is entirely your fault :). I found
(via filing at b.m.o) that the latest version of perl-JSON doesn't work with
Testopia. Greg is aiming to having this resolved by the time 2.0 final comes
out, but it's a little hairy, In the meanwhile, I've posted F9 and EL-5 versions
of what does work at http://i.am.jds2001.org/temp
Comment 13 Jon Stanley 2008-06-10 08:14:18 EDT
Oh, and the install at http://i.am.jds2001.org/bugzilla/ is alive and kicking
with this new module (and you have admin rights to that bugzilla installation).
The one thing that I've found is that if you add a component to an environment,
for some reason you can't rename it.
Comment 14 Jon Stanley 2008-06-10 08:20:08 EDT
Oh, and it's too early iin the morning - perl-GDGraph3d-0.63-9.fc9.noarch is
packaged for Fedora.

$ rpm -q --provides perl-GDGraph3d-0.63-9.fc9.noarch
perl(GD::Graph3d) = 0.63
perl(GD::Graph::axestype3d) = 0.63
perl(GD::Graph::bars3d) = 0.63
perl(GD::Graph::cylinder) = 0.63
perl(GD::Graph::cylinder3d) = 0.63
perl(GD::Graph::lines3d) = 0.63
perl(GD::Graph::pie3d) = 0.63
perl-GD-Graph3d = 0.63-9.fc9
perl-GDGraph3d = 0.63-9.fc9
$ 

  
Comment 15 Dave Malcolm 2008-06-10 16:39:34 EDT
Thanks; the bug you filed on mozilla.org _was_ the issue I'm seeing; for later
reference you filed it on b.m.o as 437828, resolved as dup of 409309; adding
reference to latter to this bug
Comment 16 Dave Malcolm 2008-06-11 14:29:20 EDT
Re perl-GD-Graph3d: doh!

Updated specfile at same location: http://dmalcolm.fedorapeople.org/testopia.spec
and SRPM: 
http://dmalcolm.fedorapeople.org/testopia-3.0.4-1_2.tr2.0_RC1.fc10.src.rpm
Comment 17 Dave Malcolm 2008-06-17 18:36:12 EDT
I've been experimenting with the python client-side helper module for XML-RPC
interface in the contrib subpackage, and moved it to its own -python subpackage,
installing it to site-libs so that it's accessible easily with "import testopia"
in client code.  Some notes on doing this are at:
https://fedoraproject.org/wiki/QA/Testopia/XmlRpc

Updated specfile at same location: http://dmalcolm.fedorapeople.org/testopia.spec
and SRPM at:
http://dmalcolm.fedorapeople.org/testopia-3.0.4-1_3.tr2.0_RC1.fc10.src.rpm
Comment 18 Dave Malcolm 2008-06-25 14:17:29 EDT
I've reworked things to try to make this parallel-installable with bugzilla, and
use /testopia on the server
Updated specfile at same location: http://dmalcolm.fedorapeople.org/testopia.spec
and SRPM at:
http://dmalcolm.fedorapeople.org/testopia-3.0.4-1_4.tr2.0_RC1.fc10.src.rpm
Comment 19 Dave Malcolm 2008-07-03 12:00:41 EDT
Upstream released 2.0-RC2; have uploaded new spec to:
http://dmalcolm.fedorapeople.org/testopia.spec
and new SRPM to:
http://dmalcolm.fedorapeople.org/testopia-3.0.4-1_5.tr2.0_RC2.fc10.src.rpm

From the ChangeLog:
* Wed Jun 25 2008 David Malcolm <dmalcolm@redhat.com> - 3.0.4-1_5.tr2.0_RC2
- 2.0-RC2; needs perl-JSON >= 2.10
- introduce -selftests subpackage to avoid having main package pull in all
of the various dependencies of the upstream Testopia test suite
- add perl(testopia::t::Constants) to the unwanted autogenerated requirements
Comment 20 Dave Malcolm 2008-07-03 19:27:30 EDT
Upstream released 2.0 final today; have uploaded new spec to:
http://dmalcolm.fedorapeople.org/testopia.spec
and new SRPM to:
http://dmalcolm.fedorapeople.org/testopia-3.0.4-1_6.tr2.0.fc10.src.rpm

From the %changelog:
* Thu Jul  3 2008 David Malcolm <dmalcolm@redhat.com> - 3.0.4-1_6.tr2.0
- 2.0
- add import_example.csv to -doc subpackage
Comment 21 Tom "spot" Callaway 2008-07-07 14:46:05 EDT
Lawyer says that, to the extent that ExtJS is licensed under GPLv3, there
is a license incompatibility here because of GPLv3/MPL incompatibility,
and thus the risk of violation of ExtJS's copyright. If LGPLv3 is the license,
on the other hand, there is no compatibility problem.

At one point, ExtJS was released under LGPLv3, but they've since changed to
release under GPLv3. Unfortunately, the testopia code doesn't give any
indication of when they pulled in their local copy of ExtJS, and all of the code
refers back to the website for licensing, which says GPLv3, so we can only
safely assume GPLv3.

The options here are:

1. Find a checkout of ExtJS that we know was released under the LGPLv3 and
replace what is in testopia with that.
2. Prove that the ExtJS bits in testopia were released under the LGPLv3 license.
3. Move testopia to use OpenExt (http://sourceforge.net/projects/openext/)
4. Don't put testopia in Fedora.

This package is legal blocked until one of those outcomes is reached.
Comment 22 Dave Malcolm 2008-07-07 16:14:40 EDT
There is a discussion of licensing issues upstream at
https://bugzilla.mozilla.org/show_bug.cgi?id=430138
Comment 23 Dave Malcolm 2008-07-08 15:08:02 EDT
A 6384971 byte zipfile is downloadable from the extjs website from this URL:
http://extjs.com/deploy/ext-2.0.2.zip
with this m5dsum:
afb2619b828f8b6d947aff3c02340159  ext-2.0.2.zip

I've uploaded the LICENSE.txt from that zipfile to
https://bugzilla.redhat.com/attachment.cgi?id=311307

The md5sums of the extjs files in the testopia tarball don't all match that of
the zipfile from extjs.com, so I don't think we can attain option 2 this way.  

Aiming for option 1, I've packaged the content of the zipfile up for review here:
https://bugzilla.redhat.com/show_bug.cgi?id=454480
naming it "extjs-lgpl", since the license appears to be the LGPL, however, I am
not a lawyer.

I've tested removing the extjs files from testopia and replacing with a symlink
to the extjs-lgpl payload, and it works, providing that I delete the .htacess
file.  We could add a Requires to the testopia package accordingly.
Comment 24 Dave Malcolm 2008-07-15 13:52:12 EDT
extjs.com have hinted at allowing an exception for FLOSS yet GPL-incompatible
applications at
http://extjs.com/blog/2008/04/27/open-source-license-exception-for-extensions/

In the hope that this reaches fruition I've filed a review request for the GPLv3
version of extjs as bug 455474.

Comment 25 Jon Stanley 2008-07-22 08:17:18 EDT
There's a draft of the FLOSS exception available at
http://extjs.com/products/floss-exception.php

It looks like ExtJS 2.2 will be licensed like this (which looks fine to me, but
IANAL)
Comment 26 Greg DeKoenigsberg 2008-08-04 01:14:57 EDT
Any chance that the current situation can be clarified here?

Are we simply waiting for the draft document here:

http://extjs.com/products/floss-exception.php

...to become final?  What's the status?
Comment 27 Jon Stanley 2008-08-04 09:00:04 EDT
Yep, but as I read that exception, it will only apply to new versions of ExtJS. So here's what we'd need to do:

1) Package the new ExtJS in Fedora (Testopia bundles ExtJS with the tarball, however, we don't allow private copies of libs in packages)

2) Either wait for upstream or help upstream port to the new version of ExtJS that this exception applies to (probably not hard - might not even need porting)

After that, we can have Testopia!

Spot - you never commented on the legal status of that exception, were it to become final - here's our opportunity to influence it :)
Comment 28 Jon Stanley 2008-08-05 22:36:08 EDT
Note that ExtJS published a new version of their exception today over at http://extjs.com/products/floss-exception.php
Comment 29 Jon Stanley 2008-08-06 19:11:19 EDT
Had a mini-conversation with spot on IRC today: (edited to show relevant parts, there was another conversation ongoing).

11:26 < jds2001> btw, extjs 2.2 was released on monday
11:26 < jds2001> with the FLOSS exception
11:26 < jds2001> need spot to opine on that :)
11:27 < spot> do not want
11:27 < spot> RH Legal says stay far far far away from ExtJS. Exception, or no exception.

As a result of this, closing this review CANTFIX.

However, it would be great if we could port this to use some other JavaScript library, since that's really the only problem with it.
Comment 30 Dave Malcolm 2008-08-18 09:54:41 EDT
Unfortunately, there are about 15kloc of JavaScript in there, which are heavily dependent on ExtJS.  A port of Testopia to a different js lib would be a major engineering effort, and a fork from upstream.

Note You need to log in before you can comment on or make changes to this bug.