<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:55:56 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[CONTROLLER-1591] Make it possible to use LevelDB native binary installed by OS package manager, instead of the one bundled in leveldbjni-all</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1591</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;Some downstream distributions (I know of at least one..) object to having native &lt;b&gt;.so binaries bundled in Java JAR, such as the  /META-INF/native/&lt;/b&gt;/*/libleveldbjni.so in leveldbjni-all-1.8-odl.jar, and would prefer to be able to use a LevelDB native binary installed by OS package manager (e.g. RPM).&lt;/p&gt;

&lt;p&gt;The as-is way is convenient though as default, so this should be more like an option: e.g. a -D or a sep. Karaf feature or even just a fall-back built into leveldbjni - like if no suitable /META-INF/native/&lt;b&gt;/&lt;/b&gt;/libleveldbjni.so found, then attempt to find and use a LevelDB native binary installed by OS package manager.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26145">CONTROLLER-1591</key>
            <summary>Make it possible to use LevelDB native binary installed by OS package manager, instead of the one bundled in leveldbjni-all</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10003">Cannot Reproduce</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="vorburger">Michael Vorburger</reporter>
                        <labels>
                    </labels>
                <created>Mon, 6 Feb 2017 16:54:21 +0000</created>
                <updated>Tue, 25 Jul 2023 08:24:21 +0000</updated>
                            <resolved>Tue, 28 Feb 2017 11:28:01 +0000</resolved>
                                                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>0</watches>
                                                                                                                <comments>
                            <comment id="51738" author="vorburger" created="Mon, 6 Feb 2017 17:12:02 +0000"  >&lt;p&gt;I dug a little bit more into this today, and believe this would probably require a little bit of work upstream in leveldbjni, but not much - I can now see what would have to be done where how; here are some pointers, for another day:&lt;/p&gt;

&lt;p&gt;Background: ODL uses &lt;a href=&quot;http://doc.akka.io/docs/akka/current/scala/persistence.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://doc.akka.io/docs/akka/current/scala/persistence.html&lt;/a&gt;, which uses &lt;a href=&quot;https://github.com/fusesource/leveldbjni/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/fusesource/leveldbjni/&lt;/a&gt;, which is &quot;just&quot; a Java wrapper (based on &lt;a href=&quot;http://fusesource.github.io/hawtjni/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://fusesource.github.io/hawtjni/&lt;/a&gt;) for &lt;a href=&quot;https://github.com/google/leveldb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/google/leveldb&lt;/a&gt; ...&lt;/p&gt;

&lt;p&gt;Next step: &lt;a href=&quot;https://github.com/fusesource/leveldbjni/issues/90&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/fusesource/leveldbjni/issues/90&lt;/a&gt; ?&lt;/p&gt;</comment>
                            <comment id="51739" author="vorburger" created="Mon, 6 Feb 2017 18:53:02 +0000"  >&lt;p&gt;The point of this issue actually is less the &quot;binary installed by OS package manager&quot; part than the &quot;an alternative to those bundled inside the leveldbjni-all JAR&quot; ...&lt;/p&gt;

&lt;p&gt;Basically I think we need to be able to be more flexible re. how the LevelDB binaries are searched for, found, and loaded, and have ODL pick it up from the system...  This would also help with issues such as &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1389&quot; title=&quot;Leveldbjni not available on ARM&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1389&quot;&gt;&lt;del&gt;CONTROLLER-1389&lt;/del&gt;&lt;/a&gt; so for e.g. for ARM, you should be able to build/fix LevelDB, not leveldbjni which is just the wrapper, yourself, without having to touch ODL.&lt;/p&gt;

&lt;p&gt;Looking at &lt;a href=&quot;https://github.com/fusesource/hawtjni/blob/master/hawtjni-runtime/src/main/java/org/fusesource/hawtjni/runtime/Library.java&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/fusesource/hawtjni/blob/master/hawtjni-runtime/src/main/java/org/fusesource/hawtjni/runtime/Library.java&lt;/a&gt;, which I&apos;ve now found is what underlies this, it may actually already be possible to do this using system properties like -Dlibrary.leveldbjni.path=... (and perhaps -Dlibrary.leveldbjni.version=..), somehow (in a quick test, I wasn&apos;t able to get this working; e.g. -Dlibrary.leveldbjni.path=/lib64/libleveldb.so.1 does not work, because it then actually looks for /lib64/libleveldb.so.1/libleveldbjni.so ...)&lt;/p&gt;</comment>
                            <comment id="51740" author="vorburger" created="Wed, 8 Feb 2017 16:23:01 +0000"  >&lt;p&gt;&lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=1420383&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugzilla.redhat.com/show_bug.cgi?id=1420383&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=1420433&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugzilla.redhat.com/show_bug.cgi?id=1420433&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="51741" author="vorburger" created="Tue, 28 Feb 2017 11:28:01 +0000"  >&lt;p&gt;Closing this, because as detailed in &lt;a href=&quot;https://github.com/fusesource//issues/90:&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/fusesource//issues/90:&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(a) it turns out that IFF a libleveldbjni.so is available somewhere on the FS (outside of the JAR where it&apos;s embedded default), then leveldbjni Java code can already be made to use it via an e.g. -Dlibrary.leveldbjni.path=/tmp/ - I had tested that (using a leveldbjni unit tests, not ODL/Karaf, but I see no reason why this wouldn&apos;t work for ODL via a Karaf startup -D as well).&lt;/p&gt;

&lt;p&gt;(b) getting a new official RPM placing libleveldbjni.so into e.g. /lib64/ seems to be a bigger PITA than anticipated, due to the &lt;a href=&quot;https://fedoraproject.org/wiki/Packaging:Java#Packaging_JAR_files_that_use_JNI&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://fedoraproject.org/wiki/Packaging:Java#Packaging_JAR_files_that_use_JNI&lt;/a&gt; policy.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="25943">CONTROLLER-1389</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>7742</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=7742]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02rin:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>