Bug 220393
Summary: | Review Request: synopsis - Source-code Introspection Tool | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Stefan Seefeld <stefan> | ||||||||||||
Component: | Package Review | Assignee: | Nobody's working on this, feel free to take it <nobody> | ||||||||||||
Status: | CLOSED DUPLICATE | QA Contact: | Fedora Package Reviews List <fedora-package-review> | ||||||||||||
Severity: | medium | Docs Contact: | |||||||||||||
Priority: | medium | ||||||||||||||
Version: | rawhide | CC: | mtasaka | ||||||||||||
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: | 2007-09-12 17:56: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: | |||||||||||||||
Bug Blocks: | 201449 | ||||||||||||||
Attachments: |
|
Description
Stefan Seefeld
2006-12-20 22:15:06 UTC
Kindly submit SPEC as well as SRPM URL. Created attachment 144183 [details]
rpm spec file
Please find attached the spec file. It is also included in the released
source tarball, so 'rpmbuild -ta synopsis-0.9.tar.gz' works fine, too.
I have to say that the spec file included in source tarball is far from ones which can be accepted into Fedora Extras. Please write spec file of this package by yourself according to http://fedoraproject.org/wiki/Packaging/Guidelines http://fedoraproject.org/wiki/Packaging/ReviewGuidelines I did write the spec file myself, and validated the generated packages with rpmlint. (In fact, I started by using python's own rpm packaging tools, i.e. distutils / build_rpm, and then applied manual modifications to customize the generated spec file to obtain the desired sub-packages as required by the project structure.) I would appreciate if you could provide some detail as to what aspects of the packaging guidelines the existing spec file violates. Well, I must say that there are a lot of issues to be fixed... I didn't check this package fully, only just pointing out what should be fixed. Details are written on http://fedoraproject.org/wiki/Packaging/NamingGuidelines http://fedoraproject.org/wiki/Packaging/Guidelines http://fedoraproject.org/wiki/Packaging/ReviewGuidelines !! I just glanced at a spec file and only did a quick check, not checked fully ! A. From Summary to %description *Release tag - Use %?dist tag * Source0 - Specify URL * BuildRoot - Check the recommended BuildRoot * Prefix/Vendor - Both are forbidden for Fedora * BuildRequiers - This package cannot be rebuild by mockbuild. Please check the BuildRequires (I attach a mockbuild log) * Isn't the description of License for -idl package is redundant? B. %prep * %setup - %setup stage is not quiet C. %build * Fedora specific compilation flags are not passed (I attach a build log) ------------------------------------------------------------- generating dependencies for tools/display-symbols.cc /bin/sh -ec 'g++ -M -I . -I /home/tasaka1/rpmbuild/BUILD/synopsis-0.9/src -I /home/tasaka1/rpmbuild/BUILD/synopsis-0.9/src/Synopsis/gc/include /home/tasaka1/rpmbuild/BUILD/synopsis-0.9/src/tools/display-symbols.cc | sed "s,display-symbols\\.o[ :]*,tools/display-symbols\\.d tools/display-symbols\\.o : ,g" > tools/display-symbols.d' ------------------------------------------------------------- D. %install * Before installing, $RPM_BUILD_ROOT must be cleaned first. E. %post/%postun * Please do not make this package invoke unnecessary shell process (use "%post -p /sbin/ldconfig") F %files * Usually libraries in %{_libdir} should have sominor (not a blocker, however would you contact upsteam?) * Directory ownership is not proper. For example, %{py_sitedir}/Synopsis/ is not owned by any package. * -devel package with pkgconfig .pc files should have "Requires: pkgconfig" * All documentations should be moved to %{_datadir}/doc/%{name}-%{version} * Perhaps 3 files ------------------------------------------ README COPYING NEWS ------------------------------------------ are installed twice by main and -doc package (these should in main) Created attachment 144516 [details]
Mock build log of synopsis-0.9-1
mock build log of synopsis-0.9-1 on FC-devel i386
* NOTE:
-------------------------------------------
distutils.errors.DistutilsPlatformError: invalid Python installation:
unable to open /usr/include/python2.5/pyconfig-32.h (No such file or directory)
--------------------------------------------
means that this package needs python-devel for BuildRequires.
Created attachment 144517 [details]
rpmbuild log of synopsis-0.9-1
rpmbuild log of synopis-0.9-1 on FC-devel i386
Please ensure that Fedora specific compilation flags
are correctly passed
NOTE: "Fedora specific compilation flags" can be shown by:
------------------------------------------------------
[tasaka1@localhost synopsis]$ rpm --eval %optflags
-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic
-fasynchronous-unwind-tables
------------------------------------------------------
Created attachment 144682 [details]
rpm spec file
This new spec file addresses most of the points you have been making.
I'm not sure about point E. Should I replace the whole %post
block with a single line '%post -p /sbin/ldconfig' (And likewise for %postun) ?
Where can I find proper documentation for that syntax / command ?
Thanks,
Stefan
Well, still needs a lot of fixes. Please read the URLs I have already introduced. * Perhaps this package should use python_sitearch, not python_sitelib (see: http://fedoraproject.org/wiki/Packaging/Python) * Check Group. In my opinion: main package - Development/Tools devel package - Development/Libraries (rather mandatory) doc - Documentation (rather mandatory) * As I commented above, move all documentation files from /usr/share/doc/Synopsis to /usr/share/doc/%{name}-%{version}. And.. 3 files "README COPYING NEWS" are included in both main package and -doc package (should be only in -main package) * Still Fedora specific compilation flags are not complitely passed. (Using CPPFLAGS as well as CFLAGS, CXXFLAGS seems to work). * Still mockbuild fails. For me, another requirement of "pkgconfig" for BuildRequires seems to work. * Still directory ownership issue is not treated completely. (%{py_sitedir}/Synopsis/Parsers is now owned by any package) Please check if all directories created during installation of synopsis related rpms are owned correctly by packages. * The usage of -p option of %post/%postun is on the section "Shared libraries" of http://fedoraproject.org/wiki/Packaging/ScriptletSnippets * Would you explain why you create another "-idl" package? "Requires" for main package and -idl package are currently same, so currently creating -idl subpackage creates no benefit. * Rpmlint complains: ------------------------------------------------------------ W: synopsis-devel summary-ended-with-dot The Synopsis development environment. ------------------------------------------------------------ Summary should not end with a dot. Note: when you modify spec file with no "Version" change, please increase "Release" number. Created attachment 144720 [details]
Mock build log of (new) synopsis-0.9-1
Mockbuild log of (new) synopsis-0.9-1 on FC-devel i386.
You can see:
-----------------------------------------------
675 checking for suffix of object files... o
676 checking whether we are using the GNU C++ compiler... yes
677 checking whether g++ accepts -g... yes
678 /builddir/build/BUILD/synopsis-0.9/tests/configure: line 1844:
pkg-config: command not found
679 /builddir/build/BUILD/synopsis-0.9/tests/configure: line 1845:
pkg-config: command not found
680 checking for ... /usr/bin/python
681 configure: creating ./config.status
682 config.status: creating QMTest/configuration
-------------------------------------------------------
Also:
-------------------------------------------------------
728 make: Entering directory
`/builddir/build/BUILD/synopsis-0.9/build/ctemp.linux-i686/src'
729 generating dependencies for tools/display-symbols.cc
730 /bin/sh -ec 'g++ -M -I . -I /builddir/build/BUILD/synopsis-0.9/src -I
/builddir/build/BUILD/synopsis-0.9/src/Synopsis/gc/include
/builddir/build/BUILD/synopsis-0.9/src/tools/display-symbols.cc | sed
"s,display-symbols\\.o[ :]*,tools/display-symbols\\.d tools/display-symbols\\.o
: ,g" > tools/display-symbols.d'
----------------------------------------------------------------
ping? Also, assuming that this is your first package (according to bugzilla entry), I mark this as FE-NEEDSPNSOR. ping again? Sorry for the lack of feedback. I'v got bug-reports concerning Python 2.5 on some 64-bit architectures, and so I'm considering to work on a minor release (0.9.1), where I then can address the other changes you requested, too. Again? I have updated the package to install things into <prefix>/share/doc/Synopsis-<version>, as opposed to <prefix>/share/doc/Synopsis. I also updated the spec file to fix a number of the issues you noted. As I plan to make this another release (0.9.1), once you confirm conformance, all I have right now for testing is a snapshot file, with included spec file, at http://synopsis.fresco.org/download/Synopsis-snapshot.tar.gz. Can you work with that to validate ? Thanks ! Umm: * First is the package name "Synopsis" or "synopsis"? There is a confusion between tarball name <-> rpm name <-> documentation directory name * And what is the release? "rpmbuild -ta" does not work. Please fix the release number correctly. Please upload the spec/srpm so that we (reviewers) can simply do "rpmbuild --rebuild <your srpm>" without fixing name, release number etc.. I have to say that only informing tarball is very confusing. Well, it seems that you are upstream so * first please unify name. * and fix the spec file so that we can simply do "rpmbuild -ta" or so. * And please add the soversion to libSynopsis.so OK, I'll do that. However, I still have some questions: * Is the versioning of libSynopsis.so really necessary ? I don't plan to provide any kind of backward compatibility in the short term (the API and ABI still evolve a lot). Is there anything I should do to make that clear (such as encode the version in the name itself) ? * What tools other than rpmlint do you use to validate a package ? I did use that but couldn't see some of the issues you reported earlier. Thanks (In reply to comment #17) > OK, I'll do that. However, I still have some questions: > > * Is the versioning of libSynopsis.so really necessary ? > I don't plan to provide > any kind of backward compatibility in the short term (the API and ABI still > evolve a lot) Does this mean that API/ABI may change even on 0.9.X series? Anyway I recommend to provide somajor. > * What tools other than rpmlint do you use to validate > a package ? I did use that > but couldn't see some of the issues you reported earlier. Actually the items the reviewer should check is not only rpmlint issue, mainly written on: http://fedoraproject.org/wiki/Packaging/Guidelines http://fedoraproject.org/wiki/Packaging/ReviewGuidelines http://fedoraproject.org/wiki/Packaging/ScriptletSnippets And a reviewer may check other points which are not written on these documents (well this depends on reviewers). No, 0.9.1 will be fully compatible with 0.9. However, such a minor (bugfix-only) release is exceptional. Usually I avoid it precisely because I don't see any point in even trying to be compatible. libSynopsis.so is not meant to be used by the public just yet. It's Used by all python extension modules, and eventually may be used for C++-only programs, too. But I'm not there yet. OK, I'll add the major version as somajor. Thanks ping? ping again? I will close this bug as NOTABUG if no response can be received in one week. What is the procedure to submit a not-yet-released package for testing ? I'm still looking into finishing up synopsis-0.9.1 (in particular any changes required in order to become a fedora citizen), yet it seems I have to submit an official (released) package. What is a problem is that I have completely forgotton the status of this review request. Even if you are trying to publish 0.9.1 formal tarball, unless you upload some "current status of tarball (i.e. some rc tarball)" and make srpm/spec file, I cannot do any check. So would you update the "current" rpm (using some rc tarball) so that someone (including me) can check it? ping ? Another two months have gone by; this ticket should probably be closed soon. *** This bug has been marked as a duplicate of 438543 *** |