CloudStack uses a significant amount of third party software.  As part of the 
move to ASF there is a certain set of licenses that are compatible with ASF 
policy.  We need to make sure that every dependency we have is in that set.  If 
it's not we have to remove it.

As part of this initiative we are in the process of removing third party 
dependencies from Citrix code base. We have listed JnetPcap package is one 
among that and it is a part of LGPLv3 (license). So we are planning to remove 
the same from our source code.

I have checked out my private branch from ASF master to perform this task.

I have noticed, that we are importing the classes of 'jnetpcap' in these java 
files:

DhcpSnooperImpl.java
DhcpPacketParser.java
HttpTemplateDownloader.java

I am not seeing this has been used extensively in "HttpTemplateDownloader.java" 
except for the import section. So I have removed it very easily.  But for the 
other two, I have noticed, many other classes of jnetpcap have been used in 
different places.

For an example in DhcpSnooperImpl.java:

import org.jnetpcap.Pcap;
import org.jnetpcap.PcapBpfProgram;
import org.jnetpcap.PcapIf;
import org.jnetpcap.packet.PcapPacket;
import org.jnetpcap.packet.PcapPacketHandler;
import org.jnetpcap.protocol.tcpip.Udp;
.........................
.........................
.........................
PcapBpfProgram program = new PcapBpfProgram();
                           String expr = "dst port 68 or 67";
                           int optimize = 0;
                           int netmask = 0xFFFFFF00;
                           if (pcap.compile(program, expr, optimize, netmask) 
!= Pcap.OK) {
                                  s_logger.debug("Pcap: can't compile BPF");
                                  return null;
                           }
...................................
So on..........
.................................

Also, I have noticed "DhcpListener" in  "DhcpProtocolParserServer.java" and 
"DhcpSnooperImpl.java". Could anyone please elaborate how do you say 
"DhcpListener"  is deprecated? What would you mean by that?.  I was thinking it 
is a separate java file, we have to remove it but it seems to be my 
understanding is incorrect.

I was trying to execute a build for each and every changes but facing some Java 
compilation issues most of the time. Could anyone let me know how to remove 
these dependencies from all the files and how to overcome this issue?

I am planning to send a patch to ASF once I am done with the final validation 
for "JnetPcap"...

Thanks,
Pradeep.S





Reply via email to