Skip to content

Commit fedb992

Browse files
committed
Merge pull request #113 from frenetic-lang/v0.3.0-rc
v0.3.0
2 parents e74fcc4 + 742f8ac commit fedb992

File tree

8 files changed

+398
-238
lines changed

8 files changed

+398
-238
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ env:
44
global:
55
- OPAM_DEPENDS="cstruct quickcheck ounit pa_ounit textutils core async"
66
- CONFIG_FLAGS="--enable-tests --enable-quickcheck --enable-async"
7-
- FRENETIC_DEPENDS="ocaml-packet ocaml-topology"
7+
- FRENETIC_DEPENDS="ocaml-packet"
88
matrix:
99
- OCAML_VERSION=4.01.0 OPAM_VERSION=1.1.0
1010
notifications:

LICENSE

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
This program is free software: you can redistribute it and/or modify it under
2+
the terms of the GNU General Public License version 3, as published by the Free
3+
Software Foundation (included below).
4+
5+
-------------------------------------------------------------------------------
6+
7+
GNU LESSER GENERAL PUBLIC LICENSE
8+
Version 3, 29 June 2007
9+
10+
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
11+
Everyone is permitted to copy and distribute verbatim copies
12+
of this license document, but changing it is not allowed.
13+
14+
15+
This version of the GNU Lesser General Public License incorporates
16+
the terms and conditions of version 3 of the GNU General Public
17+
License, supplemented by the additional permissions listed below.
18+
19+
0. Additional Definitions.
20+
21+
As used herein, "this License" refers to version 3 of the GNU Lesser
22+
General Public License, and the "GNU GPL" refers to version 3 of the GNU
23+
General Public License.
24+
25+
"The Library" refers to a covered work governed by this License,
26+
other than an Application or a Combined Work as defined below.
27+
28+
An "Application" is any work that makes use of an interface provided
29+
by the Library, but which is not otherwise based on the Library.
30+
Defining a subclass of a class defined by the Library is deemed a mode
31+
of using an interface provided by the Library.
32+
33+
A "Combined Work" is a work produced by combining or linking an
34+
Application with the Library. The particular version of the Library
35+
with which the Combined Work was made is also called the "Linked
36+
Version".
37+
38+
The "Minimal Corresponding Source" for a Combined Work means the
39+
Corresponding Source for the Combined Work, excluding any source code
40+
for portions of the Combined Work that, considered in isolation, are
41+
based on the Application, and not on the Linked Version.
42+
43+
The "Corresponding Application Code" for a Combined Work means the
44+
object code and/or source code for the Application, including any data
45+
and utility programs needed for reproducing the Combined Work from the
46+
Application, but excluding the System Libraries of the Combined Work.
47+
48+
1. Exception to Section 3 of the GNU GPL.
49+
50+
You may convey a covered work under sections 3 and 4 of this License
51+
without being bound by section 3 of the GNU GPL.
52+
53+
2. Conveying Modified Versions.
54+
55+
If you modify a copy of the Library, and, in your modifications, a
56+
facility refers to a function or data to be supplied by an Application
57+
that uses the facility (other than as an argument passed when the
58+
facility is invoked), then you may convey a copy of the modified
59+
version:
60+
61+
a) under this License, provided that you make a good faith effort to
62+
ensure that, in the event an Application does not supply the
63+
function or data, the facility still operates, and performs
64+
whatever part of its purpose remains meaningful, or
65+
66+
b) under the GNU GPL, with none of the additional permissions of
67+
this License applicable to that copy.
68+
69+
3. Object Code Incorporating Material from Library Header Files.
70+
71+
The object code form of an Application may incorporate material from
72+
a header file that is part of the Library. You may convey such object
73+
code under terms of your choice, provided that, if the incorporated
74+
material is not limited to numerical parameters, data structure
75+
layouts and accessors, or small macros, inline functions and templates
76+
(ten or fewer lines in length), you do both of the following:
77+
78+
a) Give prominent notice with each copy of the object code that the
79+
Library is used in it and that the Library and its use are
80+
covered by this License.
81+
82+
b) Accompany the object code with a copy of the GNU GPL and this license
83+
document.
84+
85+
4. Combined Works.
86+
87+
You may convey a Combined Work under terms of your choice that,
88+
taken together, effectively do not restrict modification of the
89+
portions of the Library contained in the Combined Work and reverse
90+
engineering for debugging such modifications, if you also do each of
91+
the following:
92+
93+
a) Give prominent notice with each copy of the Combined Work that
94+
the Library is used in it and that the Library and its use are
95+
covered by this License.
96+
97+
b) Accompany the Combined Work with a copy of the GNU GPL and this license
98+
document.
99+
100+
c) For a Combined Work that displays copyright notices during
101+
execution, include the copyright notice for the Library among
102+
these notices, as well as a reference directing the user to the
103+
copies of the GNU GPL and this license document.
104+
105+
d) Do one of the following:
106+
107+
0) Convey the Minimal Corresponding Source under the terms of this
108+
License, and the Corresponding Application Code in a form
109+
suitable for, and under terms that permit, the user to
110+
recombine or relink the Application with a modified version of
111+
the Linked Version to produce a modified Combined Work, in the
112+
manner specified by section 6 of the GNU GPL for conveying
113+
Corresponding Source.
114+
115+
1) Use a suitable shared library mechanism for linking with the
116+
Library. A suitable mechanism is one that (a) uses at run time
117+
a copy of the Library already present on the user's computer
118+
system, and (b) will operate properly with a modified version
119+
of the Library that is interface-compatible with the Linked
120+
Version.
121+
122+
e) Provide Installation Information, but only if you would otherwise
123+
be required to provide such information under section 6 of the
124+
GNU GPL, and only to the extent that such information is
125+
necessary to install and execute a modified version of the
126+
Combined Work produced by recombining or relinking the
127+
Application with a modified version of the Linked Version. (If
128+
you use option 4d0, the Installation Information must accompany
129+
the Minimal Corresponding Source and Corresponding Application
130+
Code. If you use option 4d1, you must provide the Installation
131+
Information in the manner specified by section 6 of the GNU GPL
132+
for conveying Corresponding Source.)
133+
134+
5. Combined Libraries.
135+
136+
You may place library facilities that are a work based on the
137+
Library side by side in a single library together with other library
138+
facilities that are not Applications and are not covered by this
139+
License, and convey such a combined library under terms of your
140+
choice, if you do both of the following:
141+
142+
a) Accompany the combined library with a copy of the same work based
143+
on the Library, uncombined with any other library facilities,
144+
conveyed under the terms of this License.
145+
146+
b) Give prominent notice with the combined library that part of it
147+
is a work based on the Library, and explaining where to find the
148+
accompanying uncombined form of the same work.
149+
150+
6. Revised Versions of the GNU Lesser General Public License.
151+
152+
The Free Software Foundation may publish revised and/or new versions
153+
of the GNU Lesser General Public License from time to time. Such new
154+
versions will be similar in spirit to the present version, but may
155+
differ in detail to address new problems or concerns.
156+
157+
Each version is given a distinguishing version number. If the
158+
Library as you received it specifies that a certain numbered version
159+
of the GNU Lesser General Public License "or any later version"
160+
applies to it, you have the option of following the terms and
161+
conditions either of that published version or of any later version
162+
published by the Free Software Foundation. If the Library as you
163+
received it does not specify a version number of the GNU Lesser
164+
General Public License, you may choose any version of the GNU Lesser
165+
General Public License ever published by the Free Software Foundation.
166+
167+
If the Library as you received it specifies that a proxy can decide
168+
whether future versions of the GNU Lesser General Public License shall
169+
apply, that proxy's public statement of acceptance of any version is
170+
permanent authorization for you to choose that version for the
171+
Library.

README.md

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,46 @@
11
OCaml OpenFlow
22
==============
33

4-
A serialization library for OpenFlow, with support for writing Lwt-based
5-
OpenFlow controllers.
6-
4+
A serialization and protocol library for OpenFlow.
75

86
This library supports almost all of OpenFlow 1.0 and also has some experimental
97
support for OpenFlow 1.3.
108

119
[![Build Status](https://travis-ci.org/frenetic-lang/ocaml-openflow.png)](https://travis-ci.org/frenetic-lang/ocaml-openflow)
1210

1311

14-
Building from Source
15-
--------------------
12+
Installation
13+
------------
1614

17-
If you want to write a lwt-based controller:
15+
You can install the latest release from [OPAM][http://opam.ocamlpro.com/] using
16+
the following command:
1817

19-
$ opam install openflow lwt
18+
$ opam install openflow
2019

21-
This installed the `openflow.lwt` subpackage.
20+
To install the async subpackage, simply ensure that async is installed before
21+
or after installing the library:
2222

23-
If you just want serialization support:
23+
$ opam install async
2424

25-
$ opam install openflow
25+
Development
26+
-----------
2627

28+
To build from source, first ensure that you've installed all dependencies,
29+
which are listed in the `_oasis` file under the openflow, async, and quickcheck
30+
`Library` sections. Then, run the following commands:
2731

28-
Hacking
29-
-------
32+
./configure --enable-tests --enable-quickcheck --enable-async
33+
$ make
34+
$ make test
35+
$ make install
36+
37+
While developing, you may want to install your latest changes for testing with
38+
other packages. `make install` will fail when trying to reinstall, so use this
39+
command instead:
3040

31-
The `_oasis` file specifies all the dependencies. If you're hacking on the
32-
library, you should install the dependencies needed to build the main
33-
library, the sub-packages, and the test suite.
41+
$ make reinstall
3442

35-
$ opam install ocamlfind cstruct quickcheck ounit pa_ounit lwt
36-
$ ./configure --enable-tests --enable-quickcheck --enable-lwt
43+
License
44+
-------
3745

46+
LGPLv3, see LICENSE file for its text.

_oasis

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
OASISFormat: 0.3
22
OCamlVersion: >= 4.01.0
33
Name: openflow
4-
Version: 0.2.0
4+
Version: 0.3.0
55
Synopsis: Serialization library for OpenFlow
66
Authors: https://github.com/frenetic-lang/ocaml-openflow/contributors
77
License: LGPL
@@ -74,13 +74,13 @@ Library quickcheck
7474
Path: quickcheck
7575
Build$: flag(tests) || flag(quickcheck)
7676
BuildDepends:
77-
quickcheck,
78-
openflow
77+
quickcheck,
78+
openflow
7979
Modules:
80-
Arbitrary_Base,
81-
Arbitrary_OpenFlow,
82-
Arbitrary_OpenFlow0x01,
83-
Arbitrary_SDN_Types
80+
Arbitrary_Base,
81+
Arbitrary_OpenFlow,
82+
Arbitrary_OpenFlow0x01,
83+
Arbitrary_SDN_Types
8484

8585
Executable testtool
8686
Path: test

0 commit comments

Comments
 (0)