From 8243af17bd0f2e53865b7147c07fba6b47d2c55e Mon Sep 17 00:00:00 2001 From: Tim McGilchrist Date: Wed, 23 Nov 2022 12:03:47 +1100 Subject: [PATCH] Add package for cli programs. --- bin/dune | 8 ++++++++ dune-project | 2 ++ rawlink-bin.opam | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 rawlink-bin.opam diff --git a/bin/dune b/bin/dune index 9c8d698..f63c191 100644 --- a/bin/dune +++ b/bin/dune @@ -1,19 +1,27 @@ (executable (name rawcap) (modules rawcap) + (package rawlink-bin) + (public_name rawcap) (libraries rawlink)) (executable (name rawcap_lwt) (modules rawcap_lwt) + (package rawlink-bin) + (public_name rawcap-lwt) (libraries lwt_rawlink)) (executable (name rawcap_eio) (modules rawcap_eio) + (package rawlink-bin) + (public_name rawcap-eio) (libraries eio_rawlink eio_main)) (executable (name test_arp) (modules test_arp) + (package rawlink-bin) + (public_name test-arp) (libraries eio_rawlink eio_main arp ethernet)) diff --git a/dune-project b/dune-project index 0091654..1e11840 100644 --- a/dune-project +++ b/dune-project @@ -1,2 +1,4 @@ (lang dune 3.2) (name rawlink) + +(formatting disabled) \ No newline at end of file diff --git a/rawlink-bin.opam b/rawlink-bin.opam new file mode 100644 index 0000000..eca0c37 --- /dev/null +++ b/rawlink-bin.opam @@ -0,0 +1,39 @@ +opam-version: "2.0" +maintainer: "Christiano F. Haesbaert " +authors: "Christiano F. Haesbaert " +license: "ISC" +homepage: "https://github.com/haesbaert/rawlink" +bug-reports: "https://github.com/haesbaert/rawlink/issues" +dev-repo: "git+https://github.com/haesbaert/rawlink.git" +doc: "https://haesbaert.github.io/rawlink/" +build: [ + [ "dune" "subst" ] {dev} + [ "dune" "build" "-p" name "-j" jobs ] ] +depends: [ + "ocaml" {>= "4.09.0"} + "dune" {>= "3.2"} + "rawlink" + "rawlink-eio" + "rawlink-lwt" + "ethernet" + "arp" + "eio_main" +] +depexts: [ + ["linux-headers"] {os-distribution = "alpine"} +] +synopsis: "Portable library to read and write raw packets" +description: """ +Rawlink is an ocaml library for sending and receiving raw packets at the link +layer level. Sometimes you need to have full control of the packet, including +building the full ethernet frame. + +The API is platform independent, it uses BPF on real UNIXes and AF_SOCKET on +linux. Some functionality is sacrificed so that the API is portable enough. + +Currently BPF and AF_PACKET are implemented, including filtering capabilities. +Writing a BPF program is a pain in the ass, so no facilities are provided for +it. If you need a BPF filter, I suggest you write a small .c file with a +function that returns the BPF program as a string, check `rawlink_stubs.c` for +an example. +"""