Name : quartz Version : 1.6.6 Group : Development/Libraries License : ASL 2.0 URL : http://www.quartz-scheduler.org/ Summary : Enterprise Job Scheduler for Java Description : Quartz is a job scheduling system that can be integrated with, or used along side virtually any J2EE or J2SE application. Quartz can be used to create simple or complex schedules for executing tens, hundreds, or even tens-of-thousands of jobs; jobs whose tasks are defined as standard Java components or EJBs. SPEC: https://downloads.eucalyptus.com/software/devel/fedora-16/SPECS/quartz.spec SRPM: https://downloads.eucalyptus.com/software/devel/fedora-16/SRPMS/quartz-1.6.6-2.fc15.src.rpm
It build successfully in koji in Fedora 17: http://koji.fedoraproject.org/koji/taskinfo?taskID=3401445 But on my local machine (F16) it will fail: ~/rpmbuild/BUILD/quartz-1.6.6/lib ~/rpmbuild/BUILD/quartz-1.6.6 ++ build-classpath commons-beanutils + ln -sf /usr/share/java/commons-beanutils.jar . ++ build-classpath commons-collections + ln -sf /usr/share/java/commons-collections.jar . ++ build-classpath commons-dbcp + ln -sf /usr/share/java/commons-dbcp.jar . ++ build-classpath commons-digester + ln -sf /usr/share/java/commons-digester.jar . ++ build-classpath commons-logging + ln -sf /usr/share/java/commons-logging.jar . ++ build-classpath commons-modeler + ln -sf /usr/share/java/commons-modeler.jar . ++ build-classpath commons-pool + ln -sf /usr/share/java/commons-pool.jar . ++ build-classpath geronimo-ejb /usr/bin/build-classpath: error: Could not find geronimo-ejb Java extension for this JVM /usr/bin/build-classpath: error: Some specified jars were not found + ln -sf . ln: `.' and `./.' are the same file error: Bad exit status from /var/tmp/rpm-tmp.okuvY8 (%prep) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.okuvY8 (%prep) Should be geronimo-ejb specified as BuildRequires?
rpmlint output: quartz.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/quartz-1.6.6/dbTables/tables_derby_previous.sql quartz-demo.noarch: W: no-documentation quartz-demo.noarch: E: non-executable-script /usr/share/quartz/bin/buildcp.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example7/example7.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example12/server.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example6/example6.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example8/example8.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example10/example10.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example14/example14.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example1/example1.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example13/instance2.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example3/example3.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example11/example11.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example2/example2.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example12/client.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example9/example9.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example5/example5.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example13/instance1.sh 0644L /bin/sh quartz-demo.noarch: E: non-executable-script /usr/share/quartz/example4/example4.sh 0644L /bin/sh quartz-manual.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/quartz-1.6.6/dbTables/tables_derby_previous.sql Can you fix the end of line encodings? Can you set executable bits for those examples?
I really does not understood why you define macro oname and why not use directly %{name} which has same value? Why you specify Epoch? It is not needed when it is zero. Just asking about these two. I do not require change for these two. Quartz 2.1.0 has been release on 23 September 2011. You may consider to rebase. Beside those mentioned issue above it looks good. Please fix #1 and #2, consider the rebase and it will be good.
The oname macro and epoch of 0 were left over from the jpackage spec, where the package name was quartz16. An undefined epoch is not the same as an epoch of zero last I checked, but you are right that it shouldn't be needed. As for the upgrade to 2.1.0, that's going to require some investigation. From a distribution standpoint, I understand that we want to package the latest stable versions of software. I'll need to figure out how much of a challenge it will be to migrate Eucalyptus to use 2.1.0, though, as that's my primary motivation for doing this packaging work. Since the Quartz website no longer even mentions 1.6.x, though, it's clear that we need to move to some newer version (1.8, 2.0, or 2.1). I need to put this package on hold for a bit. Thanks for pointing this out.
Re epoch - true that 0 != ''. If it was present there in jpackage already then keep it there. Removing that would break upgrades for people who already use quartz from jpackage. Re upgrade - there was big change in 1.8 - change in XML schema. If this does not affect/bother you, everything else should go smoothly. I use quartz in Spacewalk (my motivation for review) and we use there 1.8 (from jpackage as well).
I've grep'ed through our code, and it appears that we don't use quartz directly; it's is required by ha-jdbc and mule. ha-jdbc is a dormant project at this point, and the latest version of mule still has 1.6.6 as the quartzVersion in its pom file; I can attempt to build these against newer versions and see what happens.
ping? any progress here?
Sorry, this has not been very high on my priority list. I will try to get back to it next week.
I have confirmed now that switching to quartz-2.1.1 does not break our build process. I have not done extensive runtime testing, but I'm going to assume that we can adapt here. I'll post a new package soon.
New files: SPEC: http://downloads.eucalyptus.com/devel/packages/fedora-16/SPECS/quartz.spec SRPM: http://downloads.eucalyptus.com/devel/packages/fedora-16/SRPMS/quartz-2.1.2-1.fc16.src.rpm
Another note, I've changed this review from Fedora 16 to rawhide, since that's where most of my testing is now happening.
It builds successfully: http://koji.fedoraproject.org/koji/taskinfo?taskID=3587138 I briefly check it, and it all seems ok, but one thing. You have in spec: # svn export http://svn.terracotta.org/svn/quartz/tags/quartz-2.1.2 # tar caf quartz-2.1.2.tar.xz quartz-2.1.2 Source0: %{name}-%{version}.tar.xz But I find this page: http://terracotta.org/downloads/open-source/destination?name=quartz-2.1.1.tar.gz&bucket=tcdistributions&file=quartz-2.1.1.tar.gz with this download link: http://d2zwv9pap9ylyd.cloudfront.net/quartz-2.1.1.tar.gz If you will use this as Source0, we can even check if md5sum is the same as upstream. http://fedoraproject.org/wiki/Packaging:SourceURL
I can diff them, but notice that the latest tag in SVN is 2.1.2, while the latest tarball is 2.1.1. This is why I used SVN instead.
They are not the same: $ diff -urN quartz-2.1.1 quartz-2.1.2 | diffstat examples/pom.xml | 2 pom.xml | 2 quartz-all/pom.xml | 2 quartz-backward-compat/pom.xml | 2 quartz-commonj/pom.xml | 2 quartz-jboss/pom.xml | 2 quartz-oracle/pom.xml | 2 quartz-weblogic/pom.xml | 2 quartz/pom.xml | 2 quartz/src/main/java/org/quartz/CalendarIntervalScheduleBuilder.java | 6 - quartz/src/main/java/org/quartz/CronScheduleBuilder.java | 40 ++++++- quartz/src/main/java/org/quartz/DailyTimeIntervalScheduleBuilder.java | 39 ++++++ quartz/src/main/java/org/quartz/JobBuilder.java | 7 + quartz/src/main/java/org/quartz/SimpleScheduleBuilder.java | 2 quartz/src/main/java/org/quartz/TimeOfDay.java | 57 +++++++++- quartz/src/main/java/org/quartz/TriggerBuilder.java | 7 + quartz/src/main/java/org/quartz/core/QuartzSchedulerThread.java | 3 quartz/src/main/java/org/quartz/impl/StdSchedulerFactory.java | 2 quartz/src/main/java/org/quartz/package.html | 28 ++++ quartz/src/test/java/org/quartz/CronScheduleBuilderTest.java | 47 ++++++++ 20 files changed, 230 insertions(+), 26 deletions(-) and thus I would prefer to use the latest version tagged in SVN.
Aha, ok then. I will finish this review tomorrow.
============== Key: - = N/A x = Check ! = Problem ? = Not evaluated === REQUIRED ITEMS === [x] Package is named according to the Package Naming Guidelines. [x] Spec file name must match the base package %{name}, in the format %{name}.spec. [x] Package meets the Packaging Guidelines including the Java specific items [x] Package successfully compiles and builds into binary rpms on at least one supported architecture. tested in: f16/koji http://koji.fedoraproject.org/koji/taskinfo?taskID=3587138 [x] Rpmlint output: quartz.src: W: invalid-url Source0: quartz-2.1.2.tar.xz 3 packages and 0 specfiles checked; 0 errors, 1 warnings. Waiving per comment #13 [x] Package is not relocatable. [x] Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x] License field in the package spec file matches the actual license. License type: ASL 2.0 [x] If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %doc. [x] Spec file is legible and written in American English. [x] Sources used to build the package matches the upstream source, as provided in the spec URL. I get tar.gz according the comment in spec and compared it to tar.gz inside of src.rpm and did diff -Naur src.rpm upstream and there was no difference [x] Package is not known to require ExcludeArch [x] All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [-] The spec file handles locales properly. [-] ldconfig called in %post and %postun if required. [x] Package must own all directories that it creates. [x] Package requires other packages for directories it uses. [x] Package does not contain duplicates in %files. [x] Permissions on files are set properly. [x] Package has a %clean section, which contains rm -fR $RPM_BUILD_ROOT. [x] Package consistently uses macros. [x] Package contains code, or permissable content. [x] Large documentation files are in a -doc subpackage, if required. [x] Package uses nothing in %doc for runtime. [-] Header files in -devel subpackage, if present. [-] Static libraries in -devel subpackage, if present. [-] Package requires pkgconfig, if .pc files are present. [-] Development .so files in -devel subpackage, if present. [-] Fully versioned dependency in subpackages, if present. [-] Package does not contain any libtool archives (.la). [-] Package contains a properly installed %{name}.desktop file if it is a GUI application. [x] Package does not own files or directories owned by other packages. === SUGGESTED ITEMS === [x] Latest version is packaged. 2.1.2 [x] Package does not include license text files separate from upstream. [-] Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [x] Reviewer should test that the package builds in mock. Tested on: koji scratch build [x] Package should compile and build into binary rpms on all supported architectures. Tested on:koji scratch build [?] Package functions as described. [-] Scriptlets must be sane, if used. [-] The placement of pkgconfig(.pc) files is correct. [-] File based requires are sane. [-] %check is present and the tests pass ================ *** APPROVED *** ================
New Package SCM Request ======================= Package Name: quartz Short Description: Enterprise Job Scheduler for Java Owners: arg
Git done (by process-git-requests).
Can you please build package for F15,16 and if possible for EPEL too? I would be interested in them.