Bug 712624 (aeskulap)
Summary: | Review Request: aeskulap - A full open source replacement for commercially available DICOM viewer | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Ankur Sinha (FranciscoD) <sanjay.ankur> |
Component: | Package Review | Assignee: | Richard Shaw <hobbes1069> |
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | fedora-package-review, hobbes1069, notting |
Target Milestone: | --- | Flags: | hobbes1069:
fedora-review+
gwync: fedora-cvs+ |
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | aeskulap-0.2.2-0.5beta1.fc14 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2011-07-17 14:23:08 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: | |||
Bug Blocks: | 673841 |
Description
Ankur Sinha (FranciscoD)
2011-06-11 20:57:37 UTC
If you don't need a sponsor then I can review your package. Here's a quick and dirty review of the spec file. I'll add my comments inline with OK stuff snipped out: # Note: devel package does not contain any headers. Do I need to add them # .so files are shared libraries, I need to call /sbin/ldconfig, but where? In a # post section for the devel package? # Schemas handling also needs to be looked at. I'm not sure if you need a devel package. Is there any reason a program would want to build against this one? If so, then it probably should contain the headers, if not, then probably no. I don't think you need to call ldconfig since you're putting the libraries in a named directory and not in the default (i.e. /usr/lib{,64}). I'm not qualified to review the schema portion so we'll need some help on that part. # applied all the patches from the debian package # svn export svn://svn.debian.org/svn/debian-med/trunk/packages/aeskulap/trunk/ aeskulap-debian Patch0: %{name}-circular-svg.patch Patch2: %{name}-DcmElement.patch Patch3: %{name}-desktop.patch Patch4: %{name}-findAndCopyElement.patch Patch5: %{name}-gcc.patch Patch6: %{name}-i18n.patch # This is used to update the configure.in before running autoreconf fo update the autotoolization. fo -> to # Not used in spec file. It's listed here so it's there with the sources Patch7: %{name}-configure.patch Patch8: %{name}-oflog.patch Patch9: %{name}-patientNames.patch # applied patch7, ran autreconf -if, and then took a diff to generate this patch # The "-if" flag is to update the libtool macros. Patch10: %{name}-autotools.patch I wonder if this is the best way to handle this. I've run into a problem like this with a package I maintain on RPM Fusion. I ended up calling autoconf from %build, i.e.: """ %build # Necessary due to patched configure.in /bin/bash ./autogen.sh """ My way is pretty ugly too. Not sure which way is better. BuildRequires: dcmtk-devel BuildRequires: gettext intltool libpng-devel libjpeg-turbo-devel BuildRequires: libtiff-devel gtkmm24-devel libglademm24-devel BuildRequires: gconfmm26-devel libtool BuildRequires: openssl-devel BuildRequires: gettext-devel BuildRequires: tcp_wrappers-devel BuildRequires: desktop-file-utils BuildRequires: GConf2 Requires(pre): GConf2 Requires(post): GConf2 Requires(preun): GConf2 I couldn't find anything definitive on this so hopefully someone more knowledgeable will chime in. Since you are already requiring "gettext-devel", I'm not sure you need "gettext". Also, since GConf2 is a BR: I don't think the BR(pre,post,preun)'s are needed or even do anything. rm -rvf dcmtk This line should have a comment above it. I assume you're removing a bundled library? touch ./NEWS If there's no NEWS file upstream I don't think adding an empty one is necessary, in fact I believe rpmlint will complain. # remove .la files. Is this sufficient? find $RPM_BUILD_ROOT -name "*.la" -exec rm -fv '{}' \; Yup, that will do it. (In reply to comment #1) > If you don't need a sponsor then I can review your package. Here's a quick and > dirty review of the spec file. I'll add my comments inline with OK stuff > snipped out: Thanks Richard. I don't need a sponsor. I'm a packager already :) > > # Note: devel package does not contain any headers. Do I need to add them > # .so files are shared libraries, I need to call /sbin/ldconfig, but where? In > a > # post section for the devel package? > # Schemas handling also needs to be looked at. > > I'm not sure if you need a devel package. Is there any reason a program would > want to build against this one? If so, then it probably should contain the > headers, if not, then probably no. I doubt it. I'll get rid of the devel package. > > I don't think you need to call ldconfig since you're putting the libraries in a > named directory and not in the default (i.e. /usr/lib{,64}). Okay. > > I'm not qualified to review the schema portion so we'll need some help on that > part. > > > # applied all the patches from the debian package > # svn export svn://svn.debian.org/svn/debian-med/trunk/packages/aeskulap/trunk/ > aeskulap-debian > Patch0: %{name}-circular-svg.patch > Patch2: %{name}-DcmElement.patch > Patch3: %{name}-desktop.patch > Patch4: %{name}-findAndCopyElement.patch > Patch5: %{name}-gcc.patch > Patch6: %{name}-i18n.patch > # This is used to update the configure.in before running autoreconf fo update > the autotoolization. > > fo -> to > > > # Not used in spec file. It's listed here so it's there with the sources > Patch7: %{name}-configure.patch > Patch8: %{name}-oflog.patch > Patch9: %{name}-patientNames.patch > # applied patch7, ran autreconf -if, and then took a diff to generate this > patch > # The "-if" flag is to update the libtool macros. > Patch10: %{name}-autotools.patch > > I wonder if this is the best way to handle this. I've run into a problem like > this with a package I maintain on RPM Fusion. I ended up calling autoconf from > %build, i.e.: > """ > %build > # Necessary due to patched configure.in > /bin/bash ./autogen.sh > """ > > My way is pretty ugly too. Not sure which way is better. I went through this: http://fedoraproject.org/wiki/PackagingDrafts/AutoConf It says it isn't suggested to run autoconf during the build. What I've done is listed as one of the solutions :) > > > BuildRequires: dcmtk-devel > BuildRequires: gettext intltool libpng-devel libjpeg-turbo-devel > BuildRequires: libtiff-devel gtkmm24-devel libglademm24-devel > BuildRequires: gconfmm26-devel libtool > BuildRequires: openssl-devel > BuildRequires: gettext-devel > BuildRequires: tcp_wrappers-devel > BuildRequires: desktop-file-utils > BuildRequires: GConf2 > Requires(pre): GConf2 > Requires(post): GConf2 > Requires(preun): GConf2 > > I couldn't find anything definitive on this so hopefully someone more > knowledgeable will chime in. Since you are already requiring "gettext-devel", > I'm not sure you need "gettext" Hrm, I just copied that from the find lang section in the guidelines. No harm leaving it there, just for info. . > > Also, since GConf2 is a BR: I don't think the BR(pre,post,preun)'s are needed > or even do anything. Again, copied from the guidelines. Letting it be. http://fedoraproject.org/wiki/Packaging:ScriptletSnippets > > > rm -rvf dcmtk > > This line should have a comment above it. I assume you're removing a bundled > library? Yes. Added a comment. > > > touch ./NEWS configure fails in the absence of NEWS. :/ > > If there's no NEWS file upstream I don't think adding an empty one is > necessary, in fact I believe rpmlint will complain. > > # remove .la files. Is this sufficient? > find $RPM_BUILD_ROOT -name "*.la" -exec rm -fv '{}' \; > > Yup, that will do it. http://ankursinha.fedorapeople.org/aeskulap/aeskulap.spec http://ankursinha.fedorapeople.org/aeskulap/aeskulap-0.2.2-0.2beta1.fc15.src.rpm Thanks! Ankur (In reply to comment #2) > (In reply to comment #1) > > # Not used in spec file. It's listed here so it's there with the sources > > Patch7: %{name}-configure.patch > > Patch8: %{name}-oflog.patch > > Patch9: %{name}-patientNames.patch > > # applied patch7, ran autreconf -if, and then took a diff to generate this > > patch > > # The "-if" flag is to update the libtool macros. > > Patch10: %{name}-autotools.patch > > > > I wonder if this is the best way to handle this. I've run into a problem like > > this with a package I maintain on RPM Fusion. I ended up calling autoconf from > > %build, i.e.: > > """ > > %build > > # Necessary due to patched configure.in > > /bin/bash ./autogen.sh > > """ > > > > My way is pretty ugly too. Not sure which way is better. > > I went through this: > > http://fedoraproject.org/wiki/PackagingDrafts/AutoConf > > It says it isn't suggested to run autoconf during the build. What I've done is > listed as one of the solutions :) Hmmm... Of course it's a draft and there seems to be people on both sides of the issue. Since that's the case it's your call. > > BuildRequires: dcmtk-devel > > BuildRequires: gettext intltool libpng-devel libjpeg-turbo-devel > > BuildRequires: libtiff-devel gtkmm24-devel libglademm24-devel > > BuildRequires: gconfmm26-devel libtool > > BuildRequires: openssl-devel > > BuildRequires: gettext-devel > > BuildRequires: tcp_wrappers-devel > > BuildRequires: desktop-file-utils > > BuildRequires: GConf2 > > Requires(pre): GConf2 > > Requires(post): GConf2 > > Requires(preun): GConf2 > > > > I couldn't find anything definitive on this so hopefully someone more > > knowledgeable will chime in. Since you are already requiring "gettext-devel", > > I'm not sure you need "gettext" > > Hrm, I just copied that from the find lang section in the guidelines. No harm > leaving it there, just for info. Works for me. > > Also, since GConf2 is a BR: I don't think the BR(pre,post,preun)'s are needed > > or even do anything. > > Again, copied from the guidelines. Letting it be. > > http://fedoraproject.org/wiki/Packaging:ScriptletSnippets Yup, my bad. I was somehow reading the Requires(pre... as BuildRequires(pre... so please ignore! > > touch ./NEWS > > configure fails in the absence of NEWS. :/ Interesting... Never mind then. Ok, so I assume that the schema stuff is right out of the guidelines? If so that should be fine. Do the spec and SRPM links reflect your changes? If so I'll give'em a whirl. One of the reasons I chose to review this package was because I work in the medical device industry and I at one time wrote a VERY quick and dirty python image viewer using ImageMagick so we could review DICOM images from a digital x-ray machine. I even had basic stuff like image rotation and color adjustment built into it. Really ImageMagick was doing all the work, I just used Python to wrap a GUI around it. Richard Yep. The links reflect the changes :) Thanks, Ankur Ok, I've started working through the guidelines. Here's the rpmlint output from all packages generated by rpmbuild: $ rpmlint aeskulap-*.rpm aeskulap.src: W: spelling-error %description -l en_US gtkmm aeskulap.src: W: spelling-error %description -l en_US glademm -> glade mm, glade-mm, glade aeskulap.src: W: spelling-error %description -l en_US gconfmm -> confirm, conformal, conformism aeskulap.src: W: patch-not-applied Patch7: %{name}-configure.patch aeskulap.x86_64: W: spelling-error %description -l en_US gtkmm aeskulap.x86_64: W: spelling-error %description -l en_US glademm -> glade mm, glade-mm, glade aeskulap.x86_64: W: spelling-error %description -l en_US gconfmm -> confirm, conformal, conformism None of the spelling-error's are real aeskulap.x86_64: W: non-conffile-in-etc /etc/gconf/schemas/aeskulap.schemas Looking at my system this seems to be the right place, perhaps rpmlint should be updated.. aeskulap.x86_64: E: zero-length /usr/share/doc/aeskulap-0.2.2/NEWS We knew this one would be a problem, I think it's safe to ignore. aeskulap.x86_64: W: no-manual-page-for-binary aeskulap I assume this is a GUI only program in which case a man page would not be expected? aeskulap.x86_64: W: dangerous-command-in-%pre rm aeskulap.x86_64: W: dangerous-command-in-%post rm This obviously are part of the %gconf... macros which we're not responsible for so they can be ignored. 3 packages and 0 specfiles checked; 1 errors, 11 warnings. Are you going to be building for Fedora 14 as well? I went ahead and tried doing a mock build for F14 x86_64 and got this error: libtool: Version mismatch error. This is libtool 2.4, but the libtool: definition of this LT_INIT comes from libtool 2.2.10. libtool: You should recreate aclocal.m4 with macros from libtool 2.4 libtool: and run autoconf again. Perhaps this is why some people prefer to re-run autoconf instead of using a patch? Richard (In reply to comment #6) > Are you going to be building for Fedora 14 as well? I went ahead and tried > doing a mock build for F14 x86_64 and got this error: > > libtool: Version mismatch error. This is libtool 2.4, but the > libtool: definition of this LT_INIT comes from libtool 2.2.10. > libtool: You should recreate aclocal.m4 with macros from libtool 2.4 > libtool: and run autoconf again. > > Perhaps this is why some people prefer to re-run autoconf instead of using a > patch? > > Richard hrm! This is disappointing. I'll look into it. I was running into the same error on F15 with the original package and the patch had fixed it. I think I'll mail the -devel list and ask what the correct thing to do here would be. Thanks Richard, I'll submit a new srpm ASAP. Ankur Well it doesn't look like it's hit the online mailing archives yet but there is a discussion about calling autoconf from the spec file and the end result is that two people suggested running "autoconf -i -f" whether it needs it or not. I'm assuming the -f is for "force" which should ignore any issues due to autoconf version. YMMV... Richard Oops... that was autoreconf -i -f, not autoconf... rebuilt :) Should build on F14 now.(I've actually tested it ;)) http://ankursinha.fedorapeople.org/aeskulap/aeskulap.spec http://ankursinha.fedorapeople.org/aeskulap/aeskulap-0.2.2-0.3beta1.fc15.src.rpm Thanks! Ankur Ok, here's the formal review. Please ask questions as I still haven't done a lot of these and it's possible I got something wrong :) +: OK -: must be fixed =: should be fixed (at your discretion) ?: Question or clairification needed N: not applicable MUST: [+] rpmlint output: shown in comment: No major issues. [+] follows package naming guidelines [+] spec file base name matches package name [=] package meets the packaging guidelines [+] package uses a Fedora approved license: LGPLv2+ [-] license field matches the actual license: After more formal review the most authorative information I could find in the source was COPYING and COPYING.LIB. I think the spec should be updated to LGPLv2+ per Fedora Licensing requirements: http://fedoraproject.org/wiki/Licensing. [N] license file is included in %doc [+] spec file is in American English [+] spec file is legible [+] sources match upstream: md5sum "33a0f8659909426c67bebc10bd61b1d0" for both. [+] package builds on at least one primary arch: Tested F14 x86_64 and F15 i686 [N] appropriate use of ExcludeArch [+] all build requirements in BuildRequires [+] spec file handles locales properly [N] ldconfig in %post and %postun [+] no bundled copies of system libraries [N] no relocatable packages [+] package owns all directories that it creates [+] no files listed twice in %files [+] proper permissions on files [+] consistent use of macros [+] code or permissible content [N] large documentation in -doc [+] no runtime dependencies in %doc [N] header files in -devel [N] static libraries in -static [N] .so in -devel [N] -devel requires main package [+] package contains no libtool archives [+] package contains a desktop file, uses desktop-file-install/validate [+] package does not own files/dirs owned by other packages [+] all filenames in UTF-8 SHOULD: [=] query upstream for license text [N] description and summary contains available translations [+] package builds in mock [+] package builds on all supported arches [+] package functions as described: Ran binary and help was displayed [+] sane scriptlets [N] subpackages require the main package [N] placement of pkgconfig files [N] file dependencies versus package dependencies [N] package contains man pages for binaries/scripts Hi Richard, I've updated the spec/srpm: http://ankursinha.fedorapeople.org/aeskulap/aeskulap.spec http://ankursinha.fedorapeople.org/aeskulap/aeskulap-0.2.2-0.4beta1.fc15.src.rpm Thanks! :) Ankur Oh, and could you please set the review flag to "?" as per the review guidelines? Thanks, Ankur (In reply to comment #13) > Oh, and could you please set the review flag to "?" as per the review > guidelines? Woops! Got it. Ok, I think I've found the last problem before I can approve. Apparently the macros in the gconf scriptlets assume a .schemas extention so when you use: """ %pre %gconf_schema_prepare %{name}.schemas %post %gconf_schema_upgrade %{name}.schemas touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : %preun %gconf_schema_remove %{name}.schemas """ It actually looks for aeskulap.schemas.schemas (see yum install output): """ Running Transaction Test Transaction Test Succeeded Running Transaction Installing : aeskulap-0.2.2-0.4beta1.fc14.x86_64 1/1 I/O warning : failed to load external entity "/etc/gconf/schemas/aeskulap.schemas.schemas" Failed to open `/etc/gconf/schemas/aeskulap.schemas.schemas': No such file or directory Installed: aeskulap.x86_64 0:0.2.2-0.4beta1.fc14 Complete! """ I think if you take those extensions off we should be good. I checked the GConf guidelines[1] again and it is subtle but the example it showed was for "foobar.schemas" then you just use: %gconf_schema_prepare foobar %gconf_schema_obsolete foo Thanks, Richard [1] http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#GConf Okay. I've fixed that. A scratch build is in process. I'll install and check it too. http://ankursinha.fedorapeople.org/aeskulap/aeskulap-0.2.2-0.5beta1.fc15.src.rpm http://ankursinha.fedorapeople.org/aeskulap/aeskulap.spec Thanks :) Ankur I also did a mock build for F14 x86_64 and confirmed the problem is fix. At this time your package is APPROVED. Thank you for reviewing this one Richard!! :D New Package SCM Request ======================= Package Name: aeskulap Short Description: A full open source replacement for commercially available DICOM viewer Owners: ankursinha Branches: f14 f15 InitialCC: susmit mrceresa Git done (by process-git-requests). aeskulap-0.2.2-0.5beta1.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/aeskulap-0.2.2-0.5beta1.fc15 aeskulap-0.2.2-0.5beta1.fc14 has been submitted as an update for Fedora 14. https://admin.fedoraproject.org/updates/aeskulap-0.2.2-0.5beta1.fc14 aeskulap-0.2.2-0.5beta1.fc14 has been pushed to the Fedora 14 testing repository. Built and pushed to repos for testing. Closing. aeskulap-0.2.2-0.5beta1.fc15 has been pushed to the Fedora 15 stable repository. aeskulap-0.2.2-0.5beta1.fc14 has been pushed to the Fedora 14 stable repository. |