Bug 982285

Summary: Review Request: thrift - software framework for scalable cross-language services development
Product: [Fedora] Fedora Reporter: Will Benton <willb>
Component: Package ReviewAssignee: gil cattaneo <puntogil>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: bioinfornatics, cquike, ctubbsii, dan, david, fedora, lemenkov, notting, puntogil, tstclair, willb
Target Milestone: ---Flags: puntogil: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: thrift-0.9.1-10.fc19 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-02-14 08:00:45 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: 1010003, 1000563, 1016767    
Attachments:
Description Flags
review notes
none
license check
none
build failed
none
manual for thrift compiler
none
thrift-0.9.1-fb303-buildxml.patch
none
review notes none

Description Will Benton 2013-07-08 15:06:47 UTC
Spec URL: http://freevariable.com/thrift/thrift.spec
SRPM URL: http://freevariable.com/thrift/thrift-0.9.0-1.fc18.src.rpm
Description:  Apache Thrift is a software framework for scalable cross-language services development; it combines a software stack with a code generation engine to build services that work efficiently and seamlessly.
Fedora Account System Username: willb

Comment 1 Jason Tibbitts 2013-07-10 05:42:28 UTC
There's already a thrift review in https://bugzilla.redhat.com/show_bug.cgi?id=861783

Could you two perhaps work together?

Comment 2 Will Benton 2013-07-10 14:39:02 UTC
If I read the prior review request correctly, Gil is interested in thrift 0.7.0 because he needs it for a particular project; I need the current version as a dependency for other things.  However, I've added him to the CC list here to coordinate if he's interested.  (I did adapt his build.xml patch for this package.)

Comment 3 gil cattaneo 2013-07-10 21:56:11 UTC
hi
I apologize if I would comment on your work
there are some problems in your spec file:

1 - Requires:	gcc-c++ is only used for build c++ libraries and binary files (!?)

2 - %package -n	java-%{name}* should be java-lib%{name} or lib%{name}-java
    because it should be the same as the name of the library (should remember
    the name of the library is installed or to be installed)

3 - %docdir %{_javadocdir}/%{name} NOT required
   %{_javadir}/lib%{name}-%{version}-javadoc.jar  NOT required

4 - NO maven files (pom or depmad)

5 - the java library should at least have the following libraries as Requires
    mvn(org.slf4j:slf4j-api)
    mvn(commons-lang:commons-lang)
    mvn(org.apache.httpcomponents:httpclient)
    mvn(org.apache.httpcomponents:httpcore)

sorry, but i haven't interest to update the my package at this version

regards

Comment 4 Peter Lemenkov 2013-07-11 14:31:11 UTC
*** Bug 861783 has been marked as a duplicate of this bug. ***

Comment 5 Peter Lemenkov 2013-07-11 14:32:20 UTC
Wow! So you're added Erlang - that's nice :)

Comment 6 gil cattaneo 2013-07-17 08:18:26 UTC
erlang-jsx is available here now https://bugzilla.redhat.com/show_bug.cgi?id=983778

Comment 7 Will Benton 2013-07-17 14:05:44 UTC
Gil, thanks for the great feedback.  I'll spin a new package with these fixes (and Erlang support) ASAP.

Comment 8 Remi Collet 2013-07-29 06:27:37 UTC
Small comment about the php sub-package


Please remove 
    Requires:	php
You obviously don't need "mod_php" and "httpd" (ABI requirement are enough)

You can also remove
   %global php_extdir ...
This macro is defined on fedora and rhel-6 (only required on rhel-5, which doesn't seems to be targeted)

What is the {php_extdir}/Thrift/ dir used for ?

I also prefer to have the subpackage dependencies in the subpackage definition.
(ex BR: php-devel). It will also save you some conditional stuf for some language (erlang, ruby) as the sub-package definition already have this condition. Just make spec a little more legible.

Comment 9 Remi Collet 2013-07-29 07:17:42 UTC
%{php_extdir}/Thrift is a pure PHP library, so should be installed (moved) in the php include_path, so %{_datadir}/php/Thrift (PSR-0 compliant)

According to phpcompatinfo analysis, this library requires :
php(language) >= 5.3.0
php-date
php-json

And optionally php-pecl(APC), but seems preferable to not require it in fedora < 20 because APC (opcode cache part) have some bad side effects, APCU (dropin replacment in f20) is fine (no more opcode cache, only user data cache).

Comment 10 MERCIER Jonathan 2013-07-29 23:17:08 UTC
Hi, since Fedora support d lang please add this binding the only things to do is:
sed -i 's/ldmd/ldmd2/g' configure

as configure try to search ldmd whereas the name is ldmd2

thanks

Comment 11 MERCIER Jonathan 2013-07-30 01:26:53 UTC
oh yes you need to set d include dir path.
/configure D_IMPORT_PREFIX=%{_d_includedir}

replace d_lib_flag
sed -i 's/d_lib_flag=.*/d_lib_flag=%{_d_optflags} -Isrc -shared'  lib/d/Makefile

set lib as shared so you need to replace these .a by .so from Makefile at root project dir

D_EVENT_LIB_NAME = libthriftd-event.a
D_LIB_NAME = libthriftd.a
D_SSL_LIB_NAME = libthriftd-ssl.a

Comment 12 MERCIER Jonathan 2013-07-30 01:46:15 UTC
Step by step:

$ sed -i 's/d_lib_flags = .*/d_lib_flags = %{_d_optflags} -Isrc -shared/'  lib/d/Makefile

$ sed -i 's/ldmd/ldmd2/g' configure

$ sed -i 's/libthriftd-event.a/libthriftd-event.so/' Makefile 

$ sed -i 's/libthriftd.a/libthriftd.so/' Makefile 

$ sed -i 's/libthriftd-ssl.a/libthriftd-ssl.so/' Makefile

$ ./configure D_IMPORT_PREFIX=%{_d_includedir}

Comment 13 MERCIER Jonathan 2013-07-30 01:55:41 UTC
after a check
fix sed to write expected flags
sed -i "s/d_lib_flags = .*/d_lib_flags = $(rpm --eval %{_d_optflags} ) -Isrc -shared/"  lib/d/Makefile

going to bed good luck ^^

Comment 14 Will Benton 2013-08-16 03:05:21 UTC
OK, a new package and spec are available here:  

http://freevariable.com/thrift/thrift.spec
http://freevariable.com/thrift/thrift-0.9.0-2.fc18.src.rpm

Thanks for all of the helpful feedback.  Remi, I guess I was confused because the PHP library depends on the binary extension, but it's sorted now.  Jonathan, I've not yet enabled D support but will consider doing so after some more investigation.

Comment 15 Will Benton 2013-08-23 16:57:17 UTC
Another updated package and spec are available now:

http://freevariable.com/thrift/thrift.spec
http://freevariable.com/thrift/thrift-0.9.0-4.fc19.src.rpm

Comment 16 David Fetter 2013-09-19 05:33:07 UTC
Any chance of a version bump to 0.9.1?

Comment 17 Will Benton 2013-09-19 14:56:08 UTC
Would you be interested in reviewing a package for thrift 0.9.1?

Comment 18 David Fetter 2013-09-19 15:03:29 UTC
Definitely :)  I have a particular use case in mind, but if there are other guidelines, I'd be happy to go with those, too.

Comment 19 gil cattaneo 2013-09-20 05:19:55 UTC
hi Will
see https://bugzilla.redhat.com/show_bug.cgi?id=993551
and http://fedoraproject.org/wiki/Changes/UnversionedDocdirs
--docdir=%{_docdir}/%{name}
can use also rpm macros for:
/usr/bin/thrift >> %{_bindir}/thrift

/usr/lib64/erlang/lib/%{name}-%{version}/ >> %{_libdir}/erlang/lib/%{name}-%{version}/

and
if you use

sed -i 's|-Dinstall.javadoc.path=$(DESTDIR)$(docdir)/java|-Dinstall.javadoc.path=$(DESTDIR)%{_javadocdir}/%{name}|' lib/java/Makefile.*

install javadocs in the proper place

also fir unversioned jar
can use 
sed -i 's|${thrift.artifactid}-${version}|${thrift.artifactid}|' lib/java/build.xml

regards

Comment 20 Will Benton 2013-09-25 13:54:43 UTC
The update to 0.9.1 was a little trickier than one might have hoped, but it's done now:

Spec URL:  http://freevariable.com/thrift/thrift.spec
SRPM URL:  http://freevariable.com/thrift/thrift-0.9.1-2.fc19.src.rpm

Koji results are here:  http://koji.fedoraproject.org/koji/taskinfo?taskID=5980094

Comment 21 gil cattaneo 2013-09-29 09:19:24 UTC
Created attachment 804645 [details]
review notes

problems:

Issues:
=======
- Packages have proper BuildRequires/Requires on jpackage-utils
 Skip

- Permissions on files are set properly.
  Note: See rpmlint output
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#FilePermissions
- All build dependencies are listed in BuildRequires, except for any that are
  listed in the exceptions section of Packaging Guidelines.
  Note: These BR are not needed: gcc-c++
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2

[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "Apache (v2.0)", "BSD (2 clause)", "*No copyright* Apache (v2.0)",
     "Unknown or generated", "zlib/libpng". 55 files have unknown license.
     Detailed output of licensecheck in
     /home/gil/982285-thrift/licensecheck.txt

[!]: Package should not use obsolete m4 macros
     Note: Some obsoleted macros found, see the attachment.
     See: https://fedorahosted.org/FedoraReview/wiki/AutoTools

python-thrift.i686: E: non-standard-executable-perm /usr/lib/python2.7/site-packages/thrift/protocol/fastbinary.so 0775L
erlang-thrift.i686: W: only-non-binary-in-usr-lib
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_reconnecting_client.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/include/thrift_protocol_behaviour.hrl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_file_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_memory_buffer.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_base64_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_buffered_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_disk_log_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/include/thrift_protocol.hrl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_transport_state_test.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_socket_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_service.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_client.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_protocol.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_processor.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_socket_server.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_server.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_http_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_client_util.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/include/thrift_transport_behaviour.hrl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/include/thrift_constants.hrl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/ebin/thrift.app
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_json_protocol.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_framed_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_binary_protocol.erl
thrift.src: W: strange-permission thrift-0.9.1-bootstrap.sh 0755L
thrift.src:67: W: macro-in-comment %{name}
thrift.src:67: W: macro-in-comment %{version}
thrift.src:67: W: macro-in-comment %{name}
thrift.src:67: W: macro-in-comment %{version}
thrift.src:292: W: macro-in-comment %{buildroot}
thrift.src:295: W: macro-in-comment %{python_sitearch}
thrift.src:295: W: macro-in-comment %{python_sitelib}
thrift.src:297: W: macro-in-comment %{buildroot}
thrift.src:297: W: macro-in-comment %{python_sitearch}
thrift.src:297: W: macro-in-comment %{name}
thrift.src:298: W: macro-in-comment %{buildroot}
thrift.src:298: W: macro-in-comment %{python_sitelib}
thrift.src:298: W: macro-in-comment %{name}
thrift.src:298: W: macro-in-comment %{buildroot}
thrift.src:298: W: macro-in-comment %{python_sitearch}
thrift.src:299: W: macro-in-comment %{buildroot}
thrift.src:299: W: macro-in-comment %{python_sitelib}
thrift.src:304: W: macro-in-comment %{buildroot}
thrift.src:77: W: mixed-use-of-spaces-and-tabs (spaces: line 77, tab: line 60)
thrift.src: W: patch-not-applied Patch2: thrift-0.9.1-distbuild-issues.patch
thrift.src: W: invalid-url Source0: http://archive.apache.org/dist/thrift/0.9.1/thrift-0.9.1-ff980c1.tar.gz HTTP Error 404: Not Found
8 packages and 0 specfiles checked; 26 errors, 24 warnings.

Rpmlint (installed packages)
----------------------------
# rpmlint thrift-devel perl-thrift java-libthrift erlang-thrift java-libthrift-javadoc python-thrift thrift
thrift-devel.i686: W: undefined-non-weak-symbol /usr/lib/libthriftz-0.9.1.so apache::thrift::GlobalOutput
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthriftz-0.9.1.so /lib/libssl.so.10
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthriftz-0.9.1.so /lib/libcrypto.so.10
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthriftz-0.9.1.so /lib/librt.so.1
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthriftz-0.9.1.so /lib/libm.so.6
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthrift-0.9.1.so /lib/librt.so.1
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthrift-0.9.1.so /lib/libm.so.6
erlang-thrift.i686: W: only-non-binary-in-usr-lib
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_reconnecting_client.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/include/thrift_protocol_behaviour.hrl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_file_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_memory_buffer.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_base64_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_buffered_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_disk_log_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/include/thrift_protocol.hrl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_transport_state_test.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_socket_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_service.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_client.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_protocol.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_processor.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_socket_server.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_server.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_http_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_client_util.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/include/thrift_transport_behaviour.hrl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/include/thrift_constants.hrl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/ebin/thrift.app
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_json_protocol.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_framed_transport.erl
erlang-thrift.i686: E: script-without-shebang /usr/lib/erlang/lib/thrift-0.9.1/src/thrift_binary_protocol.erl
python-thrift.i686: E: non-standard-executable-perm /usr/lib/python2.7/site-packages/thrift/protocol/fastbinary.so 0775L
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_param_spec_object
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_free
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_param_spec_string
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_intern_static_string
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_byte_array_new
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_value_get_string
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_strdup
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_value_get_uint
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_object_class_install_property
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_param_spec_uint
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_malloc0_n
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_object_new
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_value_set_string
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_type_check_class_cast
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_byte_array_free
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_return_if_fail_warning
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_set_error
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_value_get_object
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_quark_from_static_string
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_type_check_instance_is_a
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_list_append
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_type_name
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_type_check_instance_cast
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_type_register_static_simple
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_byte_array_append
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_byte_array_remove_range
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_value_set_object
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_once_init_enter
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_value_set_uint
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_malloc_n
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_once_init_leave
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_type_class_peek_parent
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_log
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_type_class_adjust_private_offset
thrift.i686: W: unused-direct-shlib-dependency /usr/lib/libthrift_c_glib.so.0.0.0 /lib/libssl.so.10
thrift.i686: W: unused-direct-shlib-dependency /usr/lib/libthrift_c_glib.so.0.0.0 /lib/libcrypto.so.10
thrift.i686: W: unused-direct-shlib-dependency /usr/lib/libthrift_c_glib.so.0.0.0 /lib/librt.so.1

AutoTools: Obsoleted m4s found
------------------------------
  AC_PROG_LIBTOOL found in: thrift-0.9.1/configure.ac:89

Comment 22 gil cattaneo 2013-09-29 09:20:19 UTC
Created attachment 804646 [details]
license check

Comment 23 gil cattaneo 2013-09-29 09:25:33 UTC
please for all patched follow this format: 'name'-'version'-'...'.patch
regards

Comment 24 gil cattaneo 2013-09-29 09:27:28 UTC
(In reply to gil cattaneo from comment #23)
> please,for all patch follow this format: 'name'-'version'-'...'.patch
> regards

Comment 25 gil cattaneo 2013-09-29 09:55:36 UTC
qt support isn't enabled...?
checking for QT...
QtCore >= 4.3, QtNetwork >= 4.3

Comment 26 gil cattaneo 2013-09-29 10:07:06 UTC
(In reply to gil cattaneo from comment #25)
> qt support isn't enabled...?
> checking for QT...
> QtCore >= 4.3, QtNetwork >= 4.3
C++ Library:
   Build TZlibTransport ...... : yes
   Build TNonblockingServer .. : 
   Build TQTcpServer (Qt) .... : no

and please remove empty %doc macro in devel sub package

Comment 27 Will Benton 2013-09-30 21:58:41 UTC
Spec URL:  http://freevariable.com/thrift/thrift.spec
SRPM URL:  http://freevariable.com/thrift/thrift-0.9.1-3.fc19.src.rpm

Review notes:


===== MUST items =====

[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "Apache (v2.0)", "BSD (2 clause)", "*No copyright* Apache (v2.0)",
     "Unknown or generated", "zlib/libpng". 55 files have unknown license.
     Detailed output of licensecheck in
     /home/gil/982285-thrift/licensecheck.txt

I have updated the license field to mention the BSD- and
zlib-licensed components.

[!]: License file installed when any subpackage combination is installed.

It appears that the license file is installed for every package
except debuginfo.  Am I missing something?

===== SHOULD items =====

Generic:
[!]: Sources can be downloaded from URI in Source: tag
     Note: Could not download Source0
     See: http://fedoraproject.org/wiki/Packaging:Guidelines#Tags

I've changed the Source: location to the github archive of this release
tag for 0.9.1 only (which had a broken upstream distribution tarball).

[!]: Uses parallel make %{?_smp_mflags} macro.

This is fixed, thanks.

===== EXTRA items =====

Generic:
[!]: Package should not use obsolete m4 macros
     Note: Some obsoleted macros found, see the attachment.
     See: https://fedorahosted.org/FedoraReview/wiki/AutoTools

AutoTools: Obsoleted m4s found
------------------------------
  AC_PROG_LIBTOOL found in: thrift-0.9.1/configure.ac:89

This is fixed in %prep now, thanks.

Comment 28 gil cattaneo 2013-10-01 10:33:58 UTC
hi
please, add qt-devel references
and move all build requires on main package
regards

Comment 29 gil cattaneo 2013-10-01 15:16:53 UTC
should fix these problems


thrift.src: W: strange-permission bootstrap.sh 0755L
thrift.src:310: W: macro-in-comment %{buildroot}
thrift.src:313: W: macro-in-comment %{python_sitearch}
thrift.src:313: W: macro-in-comment %{python_sitelib}
thrift.src:315: W: macro-in-comment %{buildroot}
thrift.src:315: W: macro-in-comment %{python_sitearch}
thrift.src:315: W: macro-in-comment %{name}
thrift.src:316: W: macro-in-comment %{buildroot}
thrift.src:316: W: macro-in-comment %{python_sitelib}
thrift.src:316: W: macro-in-comment %{name}
thrift.src:316: W: macro-in-comment %{buildroot}
thrift.src:316: W: macro-in-comment %{python_sitearch}
thrift.src:317: W: macro-in-comment %{buildroot}
thrift.src:317: W: macro-in-comment %{python_sitelib}
thrift.src:322: W: macro-in-comment %{buildroot}
thrift.src:70: W: mixed-use-of-spaces-and-tabs (spaces: line 70, tab: line 60)
thrift.src: W: patch-not-applied Patch2: thrift-0.9.1-distbuild-issues.patch
8 packages and 0 specfiles checked; 25 errors, 19 warnings.


Rpmlint (installed packages)
----------------------------
# rpmlint thrift-devel perl-thrift java-libthrift erlang-thrift java-libthrift-javadoc python-thrift thrift
thrift-devel.i686: W: undefined-non-weak-symbol /usr/lib/libthriftz-0.9.1.so apache::thrift::GlobalOutput
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthriftz-0.9.1.so /lib/libssl.so.10
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthriftz-0.9.1.so /lib/libcrypto.so.10
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthriftz-0.9.1.so /lib/librt.so.1
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthriftz-0.9.1.so /lib/libm.so.6
thrift-devel.i686: W: undefined-non-weak-symbol /usr/lib/libthriftqt-0.9.1.so apache::thrift::TOutput::strerror_s(int)
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthriftqt-0.9.1.so /lib/libssl.so.10
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthriftqt-0.9.1.so /lib/libcrypto.so.10
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthriftqt-0.9.1.so /lib/librt.so.1
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthriftqt-0.9.1.so /lib/libm.so.6
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthrift-0.9.1.so /lib/librt.so.1
thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libthrift-0.9.1.so /lib/libm.so.6

thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_param_spec_object
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_free
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_param_spec_string
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_intern_static_string
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_byte_array_new
thrift.i686: W:  /usr/lib/libthrift_c_glib.so.0.0.0 g_value_get_string
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_strdup
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_value_get_uint
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_object_class_install_property
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_param_spec_uint
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_malloc0_n
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_object_new
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_value_set_string
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_type_check_class_cast
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_byte_array_free
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_return_if_fail_warning
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_set_error
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_value_get_object
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_quark_from_static_string
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_type_check_instance_is_a
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_list_append
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_type_name
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_type_check_instance_cast
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_type_register_static_simple
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_byte_array_append
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_byte_array_remove_range
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_value_set_object
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_once_init_enter
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_value_set_uint
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_malloc_n
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_once_init_leave
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_type_class_peek_parent
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_log
thrift.i686: W: undefined-non-weak-symbol /usr/lib/libthrift_c_glib.so.0.0.0 g_type_class_adjust_private_offset
thrift.i686: W: unused-direct-shlib-dependency /usr/lib/libthrift_c_glib.so.0.0.0 /lib/libssl.so.10
thrift.i686: W: unused-direct-shlib-dependency /usr/lib/libthrift_c_glib.so.0.0.0 /lib/libcrypto.so.10
thrift.i686: W: unused-direct-shlib-dependency /usr/lib/libthrift_c_glib.so.0.0.0 /lib/librt.so.1

7 packages and 0 specfiles checked; 25 errors, 51 warnings.
# echo 'rpmlint-done:'

Comment 30 Will Benton 2013-10-02 17:44:51 UTC
Spec URL:  http://freevariable.com/thrift/thrift.spec
SRPM URL:  http://freevariable.com/thrift/thrift-0.9.1-4.fc19.src.rpm

All of the rpmlint warnings are now fixed except the following:

* erlang-thrift.x86_64: W: only-non-binary-in-usr-lib

This is spurious, since this package installs .beam files (not just .erl and .hrl files) and /usr/lib is where Erlang packages go.

* thrift.x86_64: W: no-manual-page-for-binary thrift

Upstream doesn't ship one.

Comment 31 Peter Lemenkov 2013-10-02 18:00:27 UTC
(In reply to Will Benton from comment #30)
> Spec URL:  http://freevariable.com/thrift/thrift.spec
> SRPM URL:  http://freevariable.com/thrift/thrift-0.9.1-4.fc19.src.rpm
> 
> All of the rpmlint warnings are now fixed except the following:
> 
> * erlang-thrift.x86_64: W: only-non-binary-in-usr-lib
> 
> This is spurious, since this package installs .beam files (not just .erl and
> .hrl files) and /usr/lib is where Erlang packages go.

That's perfectly fine. This is a typical Erlang shortcoming - an arch-independent data (*.beam files) is installed into arch-dependent directory, (%{_libdir}/erlang/lib) thus making the entire package arch-dependent. It's annoying but harmless.

We (me with my fellow colleague from SUSE community) are currently searching got a proper way to fix it, but don't expect that this issue will be resolved anytime soon.

Comment 32 gil cattaneo 2013-10-02 19:44:59 UTC
Created attachment 806704 [details]
build failed

Comment 33 Will Benton 2013-10-02 21:02:35 UTC
(In reply to Peter Lemenkov from comment #31)
> (In reply to Will Benton from comment #30)
> > Spec URL:  http://freevariable.com/thrift/thrift.spec
> > SRPM URL:  http://freevariable.com/thrift/thrift-0.9.1-4.fc19.src.rpm
> > 
> > All of the rpmlint warnings are now fixed except the following:
> > 
> > * erlang-thrift.x86_64: W: only-non-binary-in-usr-lib
> > 
> > This is spurious, since this package installs .beam files (not just .erl and
> > .hrl files) and /usr/lib is where Erlang packages go.
> 
> That's perfectly fine. This is a typical Erlang shortcoming - an
> arch-independent data (*.beam files) is installed into arch-dependent
> directory, (%{_libdir}/erlang/lib) thus making the entire package
> arch-dependent. It's annoying but harmless.
> 
> We (me with my fellow colleague from SUSE community) are currently searching
> got a proper way to fix it, but don't expect that this issue will be
> resolved anytime soon.

Peter, do you have a SIG or other mailing list for these efforts?  I'm definitely interested in more RPM<->erlang integration.

Comment 34 Will Benton 2013-10-02 21:48:05 UTC
(In reply to gil cattaneo from comment #32)
> Created attachment 806704 [details]
> build failed

Sorry, Gil, I thought I was building against the in-situ libthrift and not one from an earlier package install.  This latest build should (finally!) fix that:

Spec URL:  http://freevariable.com/thrift/thrift.spec
SRPM URL:  http://freevariable.com/thrift/thrift-0.9.1-5.fc19.src.rpm

koji results:  http://koji.fedoraproject.org/koji/taskinfo?taskID=6018132

Comment 35 gil cattaneo 2013-10-03 06:24:41 UTC
no problems, thanks for your patience

Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- Packages have proper BuildRequires/Requires on jpackage-utils


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig called in %post and %postun if required.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[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.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "Apache (v2.0)", "BSD (2 clause)", "*No copyright* Apache (v2.0)",
     "Unknown or generated", "zlib/libpng". 55 files have unknown license.
     Detailed output of licensecheck in
     /home/gil/982285-thrift/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: If the package is under multiple licenses, the licensing breakdown must
     be documented in the spec.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[x]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 122880 bytes in 12 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[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]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Each %files section contains %defattr if rpm < 4.4
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package do not use a name that already exist
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

Java:
[x]: Javadoc documentation files are generated and included in -javadoc
     subpackage
[x]: Javadoc subpackages should not have Requires: jpackage-utils
[x]: Javadocs are placed in %{_javadocdir}/%{name} (no -%{version} symlink)
[x]: Bundled jar/class files should be removed before build

Maven:
[x]: Pom files have correct Maven mapping
     Note: Some add_maven_depmap calls found. Please check if they are correct
     or update to latest guidelines
[x]: If package contains pom.xml files install it (including depmaps) even
     when building with ant
[x]: Old add_to_maven_depmap macro is not being used
[x]: Packages DOES NOT have Requires(post) and Requires(postun) on jpackage-
     utils for %update_maven_depmap macro
[x]: Package DOES NOT use %update_maven_depmap in %post/%postun
[x]: Packages use %{_mavenpomdir} instead of %{_datadir}/maven2/poms

Perl:
[x]: Package contains the mandatory BuildRequires and Requires:.
     Note: Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo
     $version)) missing?

Python:
[x]: Python eggs must not download any dependencies during the build process.
[ ]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
[x]: Package contains BR: python2-devel or python3-devel
[x]: Binary eggs must be removed in %prep

===== SHOULD items =====

Generic:
[x]: If the source package does not include license text(s) as a separate file
     from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in perl-thrift
     , java-libthrift-javadoc , java-libthrift
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise justified.
[x]: Scriptlets must be sane, if used.
[x]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[?]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed files.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: Dist tag is present (not strictly required in GL).
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: SourceX tarball generation or download is documented.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

Java:
[x]: Packages are noarch unless they use JNI
     Note: thrift subpackage is not noarch. Please verify manually
[x]: Package uses upstream build method (ant/maven/etc.)

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
[x]: Package should not use obsolete m4 macros
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: thrift-0.9.1-5.fc21.i686.rpm
          thrift-devel-0.9.1-5.fc21.i686.rpm
          python-thrift-0.9.1-5.fc21.i686.rpm
          perl-thrift-0.9.1-5.fc21.noarch.rpm
          java-libthrift-javadoc-0.9.1-5.fc21.noarch.rpm
          java-libthrift-0.9.1-5.fc21.noarch.rpm
          erlang-thrift-0.9.1-5.fc21.i686.rpm
          thrift-0.9.1-5.fc21.src.rpm
thrift.i686: W: no-manual-page-for-binary thrift
erlang-thrift.i686: W: only-non-binary-in-usr-lib
8 packages and 0 specfiles checked; 0 errors, 2 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint thrift-devel perl-thrift java-libthrift erlang-thrift java-libthrift-javadoc python-thrift thrift
erlang-thrift.i686: W: only-non-binary-in-usr-lib
thrift.i686: W: no-manual-page-for-binary thrift
7 packages and 0 specfiles checked; 0 errors, 2 warnings.
# echo 'rpmlint-done:'



Requires
--------
thrift-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    libQtCore.so.4
    libQtNetwork.so.4
    libc.so.6
    libcrypto.so.10
    libcrypto.so.10(libcrypto.so.10)
    libgcc_s.so.1
    libgcc_s.so.1(GCC_3.0)
    libgcc_s.so.1(GCC_4.0.0)
    libpthread.so.0
    libssl.so.10
    libssl.so.10(libssl.so.10)
    libstdc++.so.6
    libstdc++.so.6(CXXABI_1.3)
    libstdc++.so.6(CXXABI_1.3.1)
    libthrift-0.9.1.so
    libthrift_c_glib.so.0
    libz.so.1
    pkgconfig
    pkgconfig(glib-2.0)
    pkgconfig(gobject-2.0)
    pkgconfig(thrift)
    rtld(GNU_HASH)
    thrift(x86-32)

perl-thrift (rpmlib, GLIBC filtered):
    perl
    perl(:MODULE_COMPAT_5.18.1)
    perl(Bit::Vector)
    perl(Encode)
    perl(HTTP::Request)
    perl(IO::Select)
    perl(IO::Socket::INET)
    perl(IO::String)
    perl(LWP::UserAgent)
    perl(POSIX)
    perl(Thrift)
    perl(Thrift::BinaryProtocol)
    perl(Thrift::BufferedTransport)
    perl(Thrift::Protocol)
    perl(Thrift::Server)
    perl(Thrift::ServerTransport)
    perl(Thrift::Socket)
    perl(Thrift::Transport)
    perl(base)
    perl(constant)
    perl(strict)
    perl(utf8)
    perl(warnings)

java-libthrift (rpmlib, GLIBC filtered):
    java
    jpackage-utils
    mvn(commons-lang:commons-lang)
    mvn(org.apache.httpcomponents:httpclient)
    mvn(org.apache.httpcomponents:httpcore)
    mvn(org.slf4j:slf4j-api)

erlang-thrift (rpmlib, GLIBC filtered):
    erlang
    erlang-jsx
    thrift(x86-32)

java-libthrift-javadoc (rpmlib, GLIBC filtered):
    java-libthrift
    jpackage-utils

python-thrift (rpmlib, GLIBC filtered):
    libc.so.6
    libpthread.so.0
    libpython2.7.so.1.0
    python(abi)
    python2
    rtld(GNU_HASH)
    thrift(x86-32)

thrift (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    bison
    boost
    flex
    libc.so.6
    libgcc_s.so.1
    libgcc_s.so.1(GCC_3.0)
    libglib-2.0.so.0
    libgobject-2.0.so.0
    libm.so.6
    libpthread.so.0
    libstdc++.so.6
    libstdc++.so.6(CXXABI_1.3)
    libstdc++.so.6(CXXABI_1.3.1)
    mono-core
    openssl
    qt4
    rtld(GNU_HASH)



Provides
--------
thrift-devel:
    libthrift-0.9.1.so
    libthriftqt-0.9.1.so
    libthriftz-0.9.1.so
    pkgconfig(thrift)
    pkgconfig(thrift-qt)
    pkgconfig(thrift-z)
    pkgconfig(thrift_c_glib)
    thrift-devel
    thrift-devel(x86-32)

perl-thrift:
    perl(TApplicationException)
    perl(TMessageType)
    perl(TProtocolException)
    perl(TProtocolFactory)
    perl(TTransportException)
    perl(TType)
    perl(Thrift)
    perl(Thrift::BinaryProtocol)
    perl(Thrift::BinaryProtocolFactory)
    perl(Thrift::BufferedTransport)
    perl(Thrift::BufferedTransportFactory)
    perl(Thrift::ForkingServer)
    perl(Thrift::FramedTransport)
    perl(Thrift::HttpClient)
    perl(Thrift::MemoryBuffer)
    perl(Thrift::Protocol)
    perl(Thrift::Server)
    perl(Thrift::ServerSocket)
    perl(Thrift::ServerTransport)
    perl(Thrift::SimpleServer)
    perl(Thrift::Socket)
    perl(Thrift::TException)
    perl(Thrift::Transport)
    perl(Thrift::TransportFactory)
    perl-thrift

java-libthrift:
    java-libthrift
    mvn(org.apache.thrift:libthrift)
    osgi(org.apache.thrift)

erlang-thrift:
    erlang-thrift
    erlang-thrift(x86-32)

java-libthrift-javadoc:
    java-libthrift-javadoc

python-thrift:
    python-thrift
    python-thrift(x86-32)

thrift:
    libthrift_c_glib.so.0
    thrift
    thrift(x86-32)



Unversioned so-files
--------------------
python-thrift: /usr/lib/python2.7/site-packages/thrift/protocol/fastbinary.so

Source checksums
----------------
https://raw.github.com/apache/thrift/0.9.1/bootstrap.sh :
  CHECKSUM(SHA256) this package     : 0281b145fb2f509f509b8677c11da98af19e28e78103a76267553ba1d0b746c1
  CHECKSUM(SHA256) upstream package : 0281b145fb2f509f509b8677c11da98af19e28e78103a76267553ba1d0b746c1
https://github.com/apache/thrift/archive/0.9.1.tar.gz :
  CHECKSUM(SHA256) this package     : f9c04bf08e09de9f79dc8b0960817588ae2c08007b1980029ef1a1d8294e835f
  CHECKSUM(SHA256) upstream package : f9c04bf08e09de9f79dc8b0960817588ae2c08007b1980029ef1a1d8294e835f
http://repo1.maven.org/maven2/org/apache/thrift/libthrift/0.9.1/libthrift-0.9.1.pom :
  CHECKSUM(SHA256) this package     : 502beb3f689f0e4b96dbacf6d97f70506b218da4c634a82d04159e34172849c7
  CHECKSUM(SHA256) upstream package : 502beb3f689f0e4b96dbacf6d97f70506b218da4c634a82d04159e34172849c7


Generated by fedora-review 0.5.0 (920221d) last change: 2013-08-30
Command line :/usr/bin/fedora-review -b 982285 -m fedora-rawhide-i386
Buildroot used: fedora-rawhide-i386
Active plugins: Java, C/C++, Python, Shell-api, Perl, Generic
Disabled plugins: Ruby, R, SugarActivity, PHP
Disabled flags: EPEL5, EXARCH, DISTTAG

thrift.i686: W: no-manual-page-for-binary thrift
for this warning i found an manual from Debian
if you want use i attached this one
regards
approved

Comment 36 gil cattaneo 2013-10-03 06:26:01 UTC
Created attachment 806880 [details]
manual for thrift compiler

Comment 37 gil cattaneo 2013-10-03 06:33:15 UTC
forgotten this one:
Requires:	jpackage-utils
must changed in
Requires:	javapackages-tools

Comment 38 gil cattaneo 2013-10-03 07:54:57 UTC
hi
i done some changes for build also fb303

sed -i 's|$(thrift_home)/bin/thrift|../../../compiler/cpp/thrift|g' \
 contrib/fb303/cpp/Makefile.am \
 contrib/fb303/py/Makefile.am

sed -i 's|$(thrift_home)/include/thrift|../../../lib/cpp/src|g' \
 contrib/fb303/cpp/Makefile.am \
 contrib/fb303/py/Makefile.am

(
  cd contrib/fb303
echo "all:
        ant
install: build/libfb303.jar
        mkdir -p %{buildroot}%{_javadir}
        %{_bindir}/install -c -m 644 build/libfb303.jar %{buildroot}%{_javadir}
" > java/Makefile
chmod 755 bootstrap.sh
sh bootstrap.sh
%configure --disable-static --with-java --without-php
make
)

Comment 39 gil cattaneo 2013-10-03 07:59:24 UTC
(In reply to gil cattaneo from comment #38)
> hi
> i done some changes for build also fb303
> 
> sed -i 's|$(thrift_home)/bin/thrift|../../../compiler/cpp/thrift|g' \
>  contrib/fb303/cpp/Makefile.am \
>  contrib/fb303/py/Makefile.am
> 
> sed -i 's|$(thrift_home)/include/thrift|../../../lib/cpp/src|g' \
>  contrib/fb303/cpp/Makefile.am \
>  contrib/fb303/py/Makefile.am
> 
> (
>   cd contrib/fb303
> echo "all:
>         ant
> install: build/libfb303.jar
>         mkdir -p %{buildroot}%{_javadir}
>         %{_bindir}/install -c -m 644 build/libfb303.jar
> %{buildroot}%{_javadir}
> " > java/Makefile
> chmod 755 bootstrap.sh
> sh bootstrap.sh
> %configure --disable-static --with-java --without-php
> make
> )

if you want include these changes then must restart with review

Comment 40 gil cattaneo 2013-10-03 09:55:13 UTC
Created attachment 806998 [details]
thrift-0.9.1-fb303-buildxml.patch

- remove maven-ant-tasks support
- generate unversioned libfb303 JAR
- use system libraries
- fix install task
- add javadoc task

Comment 41 gil cattaneo 2013-10-03 10:04:38 UTC
Build section
sed -i 's|$(thrift_home)/bin/thrift|../../../compiler/cpp/thrift|g' \
 contrib/fb303/cpp/Makefile.am \
 contrib/fb303/py/Makefile.am

sed -i 's|$(thrift_home)/include/thrift|../../../lib/cpp/src|g' \
 contrib/fb303/cpp/Makefile.am

(
  cd contrib/fb303
chmod 755 bootstrap.sh
sh bootstrap.sh
%configure --disable-static --with-java --without-php
make
  (
    cd java
    ant dist
  )
)

Install section
(
  cd contrib/fb303
  make DESTDIR=%{buildroot} install
  (
    cd java
    ant -Dinstall.path=%{buildroot}%{_javadir} -Dinstall.javadoc.path=%{buildroot}%{_javadocdir}/fb303 install
  )
)


with 0.7.0 there are these problems

thrift-devel.i686: W: unused-direct-shlib-dependency /usr/lib/libfb303.so /lib/libm.so.6

fb303.i686: W: devel-file-in-non-devel-package /usr/include/thrift/fb303/ServiceTracker.h
fb303.i686: W: devel-file-in-non-devel-package /usr/include/thrift/fb303/FacebookService.h
fb303.i686: W: devel-file-in-non-devel-package /usr/include/thrift/fb303/FacebookBase.h
fb303.i686: W: devel-file-in-non-devel-package /usr/include/thrift/fb303/fb303_types.h
fb303.i686: W: devel-file-in-non-devel-package /usr/include/thrift/fb303/fb303_constants.h

fb303.i686: W: no-soname /usr/lib/libfb303.so
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so typeinfo for apache::thrift::concurrency::ReadWriteMutex
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so apache::thrift::concurrency::ReadWriteMutex::acquireRead() const
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so apache::thrift::concurrency::ReadWriteMutex::acquireWrite() const
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so apache::thrift::concurrency::ReadWriteMutex::attemptRead() const
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so apache::thrift::concurrency::ReadWriteMutex::attemptWrite() const
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so apache::thrift::concurrency::ReadWriteMutex::release() const
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so apache::thrift::concurrency::Mutex::DEFAULT_INITIALIZER(void*)
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so vtable for apache::thrift::concurrency::ReadWriteMutex
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so vtable for apache::thrift::concurrency::Mutex
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so apache::thrift::TApplicationException::read(apache::thrift::protocol::TProtocol*)
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so apache::thrift::concurrency::Mutex::unlock() const
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so apache::thrift::concurrency::ReadWriteMutex::ReadWriteMutex()
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so apache::thrift::concurrency::Mutex::Mutex(void (*)(void*))
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so apache::thrift::concurrency::Mutex::lock() const
fb303.i686: W: undefined-non-weak-symbol /usr/lib/libfb303.so apache::thrift::TApplicationException::write(apache::thrift::protocol::TProtocol*) const
fb30307.i686: W: unused-direct-shlib-dependency /usr/lib/libfb303.so /lib/libm.so.6
fb303.i686: W: devel-file-in-non-devel-package /usr/include/thrift/fb303/ServiceTracker.h
fb303.i686: W: devel-file-in-non-devel-package /usr/include/thrift/fb303/FacebookService.h
fb303.i686: W: devel-file-in-non-devel-package /usr/include/thrift/fb303/FacebookBase.h
fb303.i686: W: devel-file-in-non-devel-package /usr/include/thrift/fb303/fb303_types.h
fb303.i686: W: devel-file-in-non-devel-package /usr/include/thrift/fb303/fb303_constants.h

Comment 42 gil cattaneo 2013-10-03 10:08:10 UTC
%files devel
%{_includedir}/thrift
%exclude %{_includedir}/thrift/fb303
%{_libdir}/*.so
%exclude %{_libdir}/libfb303.so

Comment 43 gil cattaneo 2013-10-03 10:12:34 UTC
there are also some unowned directories as:
/usr/share/perl5/vendor_perl/Thrift
/usr/include/thrift

Comment 44 Peter Lemenkov 2013-10-07 06:45:14 UTC
(In reply to Will Benton from comment #33)
> (In reply to Peter Lemenkov from comment #31)

> Peter, do you have a SIG or other mailing list for these efforts?  I'm
> definitely interested in more RPM<->erlang integration.

Unfortunately no - I didn't set up mailing list for that. So far there are just few guys expressed interest in Erlang RPM packaging and it's not a big deal to discuss it using personal emails.

However I'm not against setting erlang@fedoraproject maillist - we just need someone who actally does it :)

Comment 45 Will Benton 2013-10-13 03:13:18 UTC
New version; includes fb303.

Spec URL:  http://freevariable.com/thrift/thrift.spec
SRPM URL:  http://freevariable.com/thrift/thrift-0.9.1-6.fc19.src.rpm

Comment 46 gil cattaneo 2013-10-13 05:43:13 UTC
great!
i have a doubt, is really necessary this
-a "org.apache.thrift:libfb303"
seem the pom file got the same groupId:artifactId which you repass as alias ...
...
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.thrift</groupId>
<artifactId>libfb303</artifactId>
<version>0.9.1</version>
<packaging>pom</packaging>
<name>Apache Thrift</name>
...
really is not necessary... or no? what are your intentions?
regards

Comment 47 gil cattaneo 2013-10-13 05:51:41 UTC
intents^

Comment 48 gil cattaneo 2013-10-13 05:58:56 UTC
sorry for the noise and ...
please put 
BuildRequires:	ant 
in the main package
and change jpackage-utils with javapackages-tools
jpackage-utils was retired
thanks

Comment 49 gil cattaneo 2013-10-13 15:45:11 UTC
Created attachment 811763 [details]
review notes

I don't see problems apart the duplicates:

%package -n	lib%{name}-java

BuildRequires:	ant
Requires:	jpackage-utils replace with
Requires:	javapackages-tools

%package -n fb303-java
 
Requires:	jpackage-utils replace with
Requires:	javapackages-tools

BuildRequires:	ant

and -a "org.apache.thrift:libfb303" is not necessary pom file has the same
please correct these problems before import in SCM
approved

Comment 50 Will Benton 2013-10-14 02:49:57 UTC
Thanks so much, Gil!

Comment 51 Gwyn Ciesla 2013-10-14 12:41:26 UTC
No SCM request found.

Comment 52 Will Benton 2013-10-14 13:56:05 UTC
New Package SCM Request
=======================
Package Name: thrift
Short Description: software framework for cross-language services development
Owners: willb
Branches: f19 f20 
InitialCC: willb

Comment 53 Gwyn Ciesla 2013-10-14 16:11:15 UTC
Git done (by process-git-requests).

Comment 54 Fedora Update System 2013-10-14 18:29:27 UTC
thrift-0.9.1-7.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/thrift-0.9.1-7.fc20

Comment 55 Fedora Update System 2013-10-14 18:30:14 UTC
thrift-0.9.1-7.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/thrift-0.9.1-7.fc19

Comment 56 Fedora Update System 2013-10-15 06:42:31 UTC
thrift-0.9.1-7.fc20 has been pushed to the Fedora 20 testing repository.

Comment 57 Dan Horák 2013-10-16 10:19:47 UTC
Are these Requires really needed in this way? If a library is linked in, then the dependency is set automagically based on the soname of the library.

Requires:       openssl
Requires:       boost
Requires:       bison
Requires:       flex
%ifarch %{mono_arches}
Requires:       mono-core
%endif
Requires:       qt4


Also there are libraries (libthriftqt-0.9.1.so and others) packaged in the devel subpackage that should be part of the main package. Only libthriftqt.so belongs to devel. Please fix it as it violates the guidelines.

Comment 58 Dan Horák 2013-10-16 10:41:52 UTC
you want something like this:

diff --git a/thrift.spec b/thrift.spec
index c6c147f..510ab5f 100644
--- a/thrift.spec
+++ b/thrift.spec
@@ -469,12 +469,14 @@ find %{buildroot} -name \*.py -exec grep -q /usr/bin/env {} \; -print | xargs -r
 %doc LICENSE NOTICE
 %{_bindir}/thrift
 %{_libdir}/*.so.*
+%{_libdir}/lib*-%{version}.so
 %{_mandir}/man1/thrift.1.gz
 
 %files devel
 %{_includedir}/thrift
 %exclude %{_includedir}/thrift/fb303
 %{_libdir}/*.so
+%exclude %{_libdir}/lib*-%{version}.so
 %exclude %{_libdir}/libfb303.so
 %{_libdir}/pkgconfig/thrift-z.pc
 %{_libdir}/pkgconfig/thrift-qt.pc

Comment 59 Fedora Update System 2013-10-16 10:49:04 UTC
thrift-0.9.1-8.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/thrift-0.9.1-8.fc20

Comment 60 Fedora Update System 2013-10-16 10:49:25 UTC
thrift-0.9.1-8.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/thrift-0.9.1-8.fc19

Comment 61 Fedora Update System 2013-12-20 19:13:14 UTC
thrift-0.9.1-10.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/thrift-0.9.1-10.fc19

Comment 62 Fedora Update System 2014-02-14 08:00:45 UTC
thrift-0.9.1-10.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.