Bug 855780
Summary: | Review Request: apacheds-daemon - Reusable Daemon Framework | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | gil cattaneo <puntogil> |
Component: | Package Review | Assignee: | Nobody's working on this, feel free to take it <nobody> |
Status: | CLOSED NOTABUG | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | mizdebsk |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2015-03-31 16:23:23 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 977901, 977904 | ||
Bug Blocks: | 823967 |
Description
gil cattaneo
2012-09-10 09:26:56 UTC
I am taking this review. Fails to build in rawhide mock: http://koji.fedoraproject.org/koji/taskinfo?taskID=4574340 This package depends on tanukisoft:wrapper, but currently nothing in fedora provides this artifact. build fine also with java-service-wrapper but i dont know how fix the problem if use x86_64 arch in koji (In reply to comment #4) > build fine also with java-service-wrapper > but i dont know how fix the problem if use x86_64 arch in koji This will definitely have to be resolved. Spec URL: http://gil.fedorapeople.org/apacheds-daemon/1/apacheds-daemon.spec SRPM URL: http://gil.fedorapeople.org/apacheds-daemon/1/apacheds-daemon-1.1.8-2.fc16.src.rpm - fix build problems x86_64 arch tested on: http://koji.fedoraproject.org/koji/taskinfo?taskID=4577842 As it's now the package won't work peoperly, the problem is libdir usage in noarch package. If package is built on 64-bit system then <systemPath> in pom.xml file will contain reference to /usr/lib64 and this package will work only on 64-bit systems (and vice versa, if the package is compiled on 32-bit system it will only work on 32-bit systems). Somehow I missed this bug, sorry for the delay. I'll try to review this package ASAP. Spec URL: http://gil.fedorapeople.org/apacheds-daemon.spec SRPM URL: http://gil.fedorapeople.org/apacheds-daemon-1.1.8-2.fc18.src.rpm - minor changes for the new guideline There are several problems with this package. First of all, the package is noarch, but depends on arch-specific packages and hardcodes paths to libraries. This means that if this package is built on 32-bit system then it won't work properly on 64-bit ones and vice-versa. You are using Maven scope "system". What's the reason behind that? Maven should be able to locate artifact in /usr/lib too. If not then either there is a bug in the package providing the artifact or in XMvn resolver. In either case this should be reported and fixed. Workaround is acceptable only if the real issue was reported. You are injecting "<version>any</version>" to some POMs. What's the reason? Maven should be able to work without this. If it does not, please report a bug. You are using old packaging guidelines. Please use the new guidelines for Fedora 19+. Fedora 19 is soon to be released. After Fedora 19 GA no new packages should be added to Fedora 18, so there is no reason to retain backwards-compatibility. > %global bits %(rpm --eval %{__isa_bits} | sed 's/32//') > #%%global libdir %%{_prefix}/lib%%{bits} That's not needed (see above). > # svn export http://svn.apache.org/repos/asf/directory/deceased/daemon/tags/daemon-parent-1.1.8/ apacheds-daemon-1.1.8 > # rm -rf apacheds-daemon-1.1.8/plugin/src/main/resources/org/apache/directory/daemon/installers/* > # find apacheds-daemon-1.1.8 -name '*.bat' -delete > # find apacheds-daemon-1.1.8 -name '*.class' -delete > # find apacheds-daemon-1.1.8 -name '*.dll' -delete > # find apacheds-daemon-1.1.8 -name '*.exe' -delete > # find apacheds-daemon-1.1.8 -name '*.jar' -type f -delete > # find apacheds-daemon-1.1.8 -name '*.jnilib' -delete > # find apacheds-daemon-1.1.8 -name 'jsvc_*' -delete > # find apacheds-daemon-1.1.8 -name '*.so' -delete > # find apacheds-daemon-1.1.8 -name 'wrapper-*' -type f -delete > # tar czf apacheds-daemon-1.1.8-clean-src-svn.tar.gz apacheds-daemon-1.1.8 > Source0: %{name}-%{version}-clean-src-svn.tar.gz To keep spec file simpler it would be better to create a separate shell script (cleanup-tarball.sh) to do the cleaning. > Patch0: %{name}-%{version}-disable-izpack.patch I don't know what is the purpose of this patch. Every patch should have link to upstream bug or a comment explaining its purpose. > BuildRequires: java-devel Not needed. > sed -i 's|${version}|${project.version}|' pom.xml Is this necessary? Either explain why or provide link to upstream bug tracker. > %pom_xpath_inject "pom:project/pom:reporting/pom:plugins/pom:plugin[pom:artifactId='maven-surefire-report-plugin']" " > <version>any</version>" I don't see why would you inject version "any" to the POM. Again, you need to explain why you are doing this. > %pom_remove_dep tanukisoft:wrapper > %pom_xpath_inject "pom:project/pom:dependencyManagement/pom:dependencies" ' > <dependency> > <groupId>tanukisoft</groupId> > <artifactId>wrapper</artifactId> > <version>any</version> > <scope>system</scope> > <systemPath>%{_prefix}/lib%{bits}/java-service-wrapper/wrapper.jar</systemPath> > </dependency>' > %pom_xpath_inject "pom:project/pom:dependencies" ' > <dependency> > <groupId>tanukisoft</groupId> > <artifactId>wrapper</artifactId> > <version>any</version> > <scope>system</scope> > <systemPath>%{_prefix}/lib%{bits}/java-service-wrapper/wrapper.jar</systemPath> > </dependency>' There is no need to use scope system with systemPath. Maven should be able to locate all artifacts, also under /usr/lib. > %pom_remove_dep org.apache.maven:maven-project plugin > %pom_add_dep org.apache.maven:maven-core plugin I understand why this was done (Maven 2 -> Maven 3 migration), but that doesn't have to be obvious for everyone. Please add a comment. > %pom_remove_dep plexus:plexus-utils plugin > %pom_add_dep org.codehaus.plexus:plexus-utils plugin plexus:plexus-utils is available in Fedora. There is no need to replace it with org.codehaus.plexus:plexus-utils. (In reply to Mikolaj Izdebski from comment #10) > > > %global bits %(rpm --eval %{__isa_bits} | sed 's/32//') > > #%%global libdir %%{_prefix}/lib%%{bits} > > That's not needed (see above). > > > # svn export http://svn.apache.org/repos/asf/directory/deceased/daemon/tags/daemon-parent-1.1.8/ apacheds-daemon-1.1.8 > > # rm -rf apacheds-daemon-1.1.8/plugin/src/main/resources/org/apache/directory/daemon/installers/* > > # find apacheds-daemon-1.1.8 -name '*.bat' -delete > > # find apacheds-daemon-1.1.8 -name '*.class' -delete > > # find apacheds-daemon-1.1.8 -name '*.dll' -delete > > # find apacheds-daemon-1.1.8 -name '*.exe' -delete > > # find apacheds-daemon-1.1.8 -name '*.jar' -type f -delete > > # find apacheds-daemon-1.1.8 -name '*.jnilib' -delete > > # find apacheds-daemon-1.1.8 -name 'jsvc_*' -delete > > # find apacheds-daemon-1.1.8 -name '*.so' -delete > > # find apacheds-daemon-1.1.8 -name 'wrapper-*' -type f -delete > > # tar czf apacheds-daemon-1.1.8-clean-src-svn.tar.gz apacheds-daemon-1.1.8 > > Source0: %{name}-%{version}-clean-src-svn.tar.gz > > To keep spec file simpler it would be better to create a separate shell > script (cleanup-tarball.sh) to do the cleaning. > > > Patch0: %{name}-%{version}-disable-izpack.patch > > I don't know what is the purpose of this patch. Every patch should have link > to upstream bug or a comment explaining its purpose. > > > BuildRequires: java-devel > > Not needed. ok removed > > sed -i 's|${version}|${project.version}|' pom.xml > > Is this necessary? Either explain why or provide link to upstream bug > tracker. > > > %pom_xpath_inject "pom:project/pom:reporting/pom:plugins/pom:plugin[pom:artifactId='maven-surefire-report-plugin']" " > > <version>any</version>" > the intent is to remove all warnings > I don't see why would you inject version "any" to the POM. Again, you need > to explain why you are doing this. > > > %pom_remove_dep tanukisoft:wrapper > > %pom_xpath_inject "pom:project/pom:dependencyManagement/pom:dependencies" ' > > <dependency> > > <groupId>tanukisoft</groupId> > > <artifactId>wrapper</artifactId> > > <version>any</version> > > <scope>system</scope> > > <systemPath>%{_prefix}/lib%{bits}/java-service-wrapper/wrapper.jar</systemPath> > > </dependency>' > > %pom_xpath_inject "pom:project/pom:dependencies" ' > > <dependency> > > <groupId>tanukisoft</groupId> > > <artifactId>wrapper</artifactId> > > <version>any</version> > > <scope>system</scope> > > <systemPath>%{_prefix}/lib%{bits}/java-service-wrapper/wrapper.jar</systemPath> > > </dependency>' > > There is no need to use scope system with systemPath. Maven should be able > to locate all artifacts, also under /usr/lib. > java-service-wrapper don provides maven depmap or pom ... maven or xmvn work also without these file? > > %pom_remove_dep org.apache.maven:maven-project plugin > > %pom_add_dep org.apache.maven:maven-core plugin > > I understand why this was done (), but that > doesn't have to be obvious for everyone. Please add a comment. > ok done > > %pom_remove_dep plexus:plexus-utils plugin > > %pom_add_dep org.codehaus.plexus:plexus-utils plugin > > plexus:plexus-utils is available in Fedora. There is no need to replace it > with org.codehaus.plexus:plexus-utils. ok removed Spec URL: http://gil.fedorapeople.org/apacheds-daemon.spec SRPM URL: http://gil.fedorapeople.org/apacheds-daemon-1.1.8-2.fc18.src.rpm (In reply to gil cattaneo from comment #11) > > > %pom_xpath_inject "pom:project/pom:reporting/pom:plugins/pom:plugin[pom:artifactId='maven-surefire-report-plugin']" " > > > <version>any</version>" > > > the intent is to remove all warnings There should be no warnings in Fedora 19+. If there are please file a bug report against xmvn package. > > There is no need to use scope system with systemPath. Maven should be able > > to locate all artifacts, also under /usr/lib. > > > > java-service-wrapper don provides maven depmap or pom ... maven or xmvn work > also without these file? Then these files should be added to java-service-wrapper package. > Spec URL: http://gil.fedorapeople.org/apacheds-daemon.spec > SRPM URL: http://gil.fedorapeople.org/apacheds-daemon-1.1.8-2.fc18.src.rpm The most important issues are still open. I have filled 2 bugs for java-service-wrapper package. That's what should be done instead of adding ugly hacks like scope "system" and systemPath... java-service-wrapper is fixed in rawhide now, you should remove your workarounds. Great! thanks Spec URL: http://gil.fedorapeople.org/apacheds-daemon.spec SRPM URL: http://gil.fedorapeople.org/apacheds-daemon-1.1.8-2.fc18.src.rpm - removed java-service-wrapper workarounds Please convert the package to current packaging guidelines. This means using %mvn_build instead of mvn-rpmbuild. mvn-rpmbuild is a legacy feature and it shouldn't be used for new packages. Spec URL: http://gil.fedorapeople.org/apacheds-daemon.spec SRPM URL: http://gil.fedorapeople.org/apacheds-daemon-1.1.8-2.fc18.src.rpm - replace mvn-rpmbuild with mvn_build Spec URL: http://gil.fedorapeople.org/apacheds-daemon.spec SRPM URL: http://gil.fedorapeople.org/apacheds-daemon-1.1.8-2.fc19.src.rpm Task info: http://koji.fedoraproject.org/koji/taskinfo?taskID=5553676 - Full XMvn support POM modifications just to remove warnings are missing the point. If there is a warning in the first place then the real reson should be fixed, not symptom. You can keep these modifications if you provide a reference to a bug report (either upsteam of Fedora). Spec URL: http://gil.fedorapeople.org/apacheds-daemon.spec SRPM URL: http://gil.fedorapeople.org/apacheds-daemon-1.1.8-2.fc19.src.rpm - removed POM modifications Ping? pong? (In reply to Christopher Meng from comment #22) > Ping? What do you need to know? If you want to take the review, feel free to do so. No more interested |