hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alejandro Abdelnur (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HADOOP-9872) Improve protoc version handling and detection
Date Wed, 14 Aug 2013 17:22:48 GMT
Alejandro Abdelnur created HADOOP-9872:
------------------------------------------

             Summary: Improve protoc version handling and detection
                 Key: HADOOP-9872
                 URL: https://issues.apache.org/jira/browse/HADOOP-9872
             Project: Hadoop Common
          Issue Type: Bug
          Components: build
    Affects Versions: 2.1.0-beta
            Reporter: Alejandro Abdelnur
            Priority: Blocker
             Fix For: 2.1.0-beta


HADOOP-9845 bumped up protoc from 2.4.1 to 2.5.0, but we run into a few quirks:

* 'protoc --version' in 2.4.1 exits with 1
* 'protoc --version' in 2.5.0 exits with 0
* if you have multiple protoc in your environment, you have to the the one you want to use
in the PATH before building hadoop
* build documentation and requirements of protoc are outdated

This patch does:

* handles version correctly independently of the exit code
* if HADOOP_PROTOC_PATH env var is defined, it uses it as the protoc executable * if HADOOP_PROTOC_PATH
is not defined, it picks protoc from the PATH
* documentation updated to reflect 2.5.0 is required
* enforces the version of protoc and protobuf JAR are the same
* Added to VersionInfo the protoc version used (sooner or later this will be useful for in
a troubleshooting situation).

[~vicaya] suggested to make the version check for protoc lax (i.e. 2.5.*). While working on
the patch I've thought about that. But that would introduce a potential mismatch between protoc
and protobuff  JAR.

Still If you want to use different version of protoc/protobuff from the one defined in the
POM, you can use the -Dprotobuf.version=#### to specify your alternate version. But I would
recommend not to do this, because if you publish the artifacts to a Maven repo, the fact you
used -Dprotobuf.version=#### will be lost and the version defined in the POM properties will
be used (IMO Maven should use the effective POM on deploy, but they don't).



--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message