Bug 220393

Summary: Review Request: synopsis - Source-code Introspection Tool
Product: [Fedora] Fedora Reporter: Stefan Seefeld <stefan>
Component: Package ReviewAssignee: 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: rawhideCC: 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 Flags
rpm spec file
none
Mock build log of synopsis-0.9-1
none
rpmbuild log of synopsis-0.9-1
none
rpm spec file
none
Mock build log of (new) synopsis-0.9-1 none

Description Stefan Seefeld 2006-12-20 22:15:06 UTC
Spec URL: Part of the source tarball at http://synopsis.fresco.org/download/
(Current release is http://synopsis.fresco.org/download/synopsis-0.9.tar.gz)

Description:

Synopsis is a multi-language source code introspection tool that
provides a variety of representations for the parsed code, to
enable further processing such as documentation extraction,
reverse engineering, and source-to-source translation.

Comment 1 Parag AN(पराग) 2006-12-21 04:08:23 UTC
Kindly submit SPEC as well as SRPM URL.

Comment 2 Stefan Seefeld 2006-12-21 14:18:52 UTC
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.

Comment 3 Mamoru TASAKA 2006-12-26 07:19:36 UTC
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


Comment 4 Stefan Seefeld 2006-12-27 22:01:47 UTC
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.


Comment 5 Mamoru TASAKA 2006-12-29 02:09:26 UTC
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)

Comment 6 Mamoru TASAKA 2006-12-29 02:13:56 UTC
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.

Comment 7 Mamoru TASAKA 2006-12-29 02:18:29 UTC
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
------------------------------------------------------

Comment 8 Stefan Seefeld 2007-01-03 04:30:20 UTC
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

Comment 9 Mamoru TASAKA 2007-01-03 17:15:02 UTC
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.

Comment 10 Mamoru TASAKA 2007-01-03 17:21:24 UTC
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'
----------------------------------------------------------------

Comment 11 Mamoru TASAKA 2007-01-17 19:51:58 UTC
ping?

Also, assuming that this is your first package (according
to bugzilla entry), I mark this as FE-NEEDSPNSOR.

Comment 12 Mamoru TASAKA 2007-01-27 06:53:17 UTC
ping again?

Comment 13 Stefan Seefeld 2007-01-28 15:04:47 UTC
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.



Comment 14 Mamoru TASAKA 2007-02-21 15:49:05 UTC
Again?

Comment 15 Stefan Seefeld 2007-02-27 02:11:28 UTC
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 !

Comment 16 Mamoru TASAKA 2007-02-27 07:54:30 UTC
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

Comment 17 Stefan Seefeld 2007-03-05 13:22:46 UTC
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

Comment 18 Mamoru TASAKA 2007-03-05 14:08:54 UTC
(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).

Comment 19 Stefan Seefeld 2007-03-05 14:18:33 UTC
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

Comment 20 Mamoru TASAKA 2007-04-05 08:06:28 UTC
ping?

Comment 21 Mamoru TASAKA 2007-05-25 17:46:13 UTC
ping again? I will close this bug as NOTABUG
if no response can be received in one week.

Comment 22 Stefan Seefeld 2007-05-29 15:54:00 UTC
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. 

Comment 23 Mamoru TASAKA 2007-05-29 16:19:28 UTC
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?

Comment 24 Mamoru TASAKA 2007-07-07 18:20:25 UTC
ping ?

Comment 25 Jason Tibbitts 2007-09-06 03:39:18 UTC
Another two months have gone by; this ticket should probably be closed soon.

Comment 26 Mamoru TASAKA 2008-04-14 18:39:13 UTC

*** This bug has been marked as a duplicate of 438543 ***