Hello,

Anders, thank you. I think I've finally got the separate "generate" and
"compile" steps clear now. Thank you.

What I think remains is regression testing. Yes? No? For a new dissector
should there be entry in some file (somewhere) that tells the build tools
what to test (if anything) regarding a new dissector in the asn1 directory?

I've been digging around a bit in the source files and I have not yet made
sense of how regression testing (or any testing) is done, or even if it
applies to dissectors let alone a new dissector.

Vincent Randal

On Mon, Apr 19, 2021 at 12:52 AM Anders Broman via Wireshark-dev <
wireshark-dev@wireshark.org> wrote:

> Hi,
>
> Perhaps a misconception here, the generated files are part of the source
> tree currently so when you change any of the files in the
>
> ../asn1/foo directory you need to run make foo and check in the generated
> .c and optionally .h file.
>
>
>
> So on the very first round add the directory and files in the /foo
> directory DO NOT change cmake for the generated files yet
>
> Run cmake to have the cmake files generated needed to generate asn1
> dissectors.
>
> Run make foo
>
> You should now have generated .c and possibly .h files in your src dir
>
> Check them in and update the cmake files to include the f´generated .c .h
> files
>
> Run make to have them built
>
>
>
> Best regards
>
> Anders
>
>
>
> *From:* Wireshark-dev <wireshark-dev-boun...@wireshark.org> *On Behalf Of
> *Vincent Randal
> *Sent:* den 19 april 2021 05:06
> *To:* Developer support list for Wireshark <wireshark-dev@wireshark.org>
> *Subject:* Re: [Wireshark-dev] still unclear how to build a new
> ASN.1-based dissector
>
>
>
> CORRECTION:  I omitted the troublesome steps (underlined) when describing
> the problem:
>
> git clone https://<wireshark repo> wireshark
>
> cd wireshark
>
> git checkout wireshark-3.4.4
>
> cd wireshark/epan/dissectors
>
> *cp ~/myfoo.tgz . #copy dissector code into wireshark clone*
>
> *tar xvf myfoo.tgz #extract the dissector code (details in previous email)*
>
> cd ../../..
>
> mkdir build
>
> cd build
>
> cmake ../wireshark #this step worked previously but not on a fresh
> wireshark clone now
>
> make asn1 #with relevant entries in two CMakeListsCustom files
>
> make
>
>
>
> On Sun, Apr 18, 2021 at 8:15 PM Vincent Randal <vtran...@gmail.com> wrote:
>
> Hello Wireshark-dev community,
>
>
>
> Apparently, I still don't have the correct sequence of steps necessary for
> first time generation of "packet-myfoo.c" and "packet-myfoo.h" for a new
> ASN.1-based dissector called myfoo. Details follow.
>
>
>
> I would like to understand (much better than I do) how to add an
> ASN.1-based dissector to epan/dissectors/asn1 in a fresh clone of
> wireshark. I got a lot of help from a lot of people last week (for which I
> am grateful) but I must still be missing a step here:
>
> git clone https://<wireshark repo> wireshark
>
> cd wireshark
>
> git checkout wireshark-3.4.4
>
> cd ..
>
> mkdir build
>
> cd build
>
> cmake ../wireshark #this step worked previously but not on a fresh
> wireshark clone now
>
> make asn1 #with relevant entries in two CMakeListsCustom files
>
> make
>
>
>
> When I add my dissector folder "myfoo" to epan/dissectors/asn1 here's the
> relevant error messages from cmake (with some highlighting by me):
>
>
>
>
>
>
>
>
>
>
>
> *-- Configuring doneCMake Error at epan/dissectors/CMakeLists.txt:2004
> (add_library):  Cannot find source file:
> /home/vtrandal/ws1/wireshark/epan/dissectors/packet-myfoo.c  Tried
> extensions .c .C .c++ .cc .cpp .cxx .cu .m .M .mm .h .hh .h++ .hm  .hpp
> .hxx .in .txxCMake Error at epan/dissectors/CMakeLists.txt:2004
> (add_library):  No SOURCES given to target: dissectors*
>
> [end of cmake error messages]
>
>
>
> The point of the above cmake error messages is that the "packet-myfoo.c"
> and "packet-myfoo.h" files have not yet been generated (and I don't know
> how to generate them). I do not know how I got past the cmake step before,
> but I was lucky (and unlucky now). The ASN.1-based dissector code is in the
> attached .tgz file which I extract in epan/dissectors as follows:
>
> tar xvf myfoo.tgz
>
> ./CMakeListsCustom.txt <== contains entry for myfoo
> ./asn1/CMakeListsCustom.txt <== contains entry for myfoo
> ./asn1/myfoo/
> ./asn1/myfoo/myfoo.asn
> ./asn1/myfoo/myfoo.cnf
> ./asn1/myfoo/CMakeLists.txt
> ./asn1/myfoo/packet-myfoo-template.h
> ./asn1/myfoo/packet-myfoo-template.c
>
>
>
> I apologize in advance for being thick-headed about the process of adding
> a new ASN.1-based dissector to epan/dissectors/asn1 in Wireshark. With help
> from a lot of people I got it to compile previously (again for which I am
> grateful). But I cannot repeat that success starting with a fresh clone of
> wireshark regardless of the branch. Somehow I still don't have the correct
> sequence of steps necessary to generate "packet-myfoo.c" and
> "packet-myfoo.h" the first time. With my dissector code in epan/dissectors
> the cmake step fails and I cannot make  anything.
>
>
>
> Vincent
>
>
>
> NOTE: The attached dissector code is based on the simple ASN.1-based
> dissector example online.
> https://www.wireshark.org/docs/wsdg_html_chunked/SimpleASN1BasedDissector.html
>
>
>
> ___________________________________________________________________________
> Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
> Archives:    https://www.wireshark.org/lists/wireshark-dev
> Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
>              mailto:wireshark-dev-requ...@wireshark.org
> ?subject=unsubscribe
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to