Wireshark-dev: Re: [Wireshark-dev] asn2wrs.py no longer seems to generate the same code ...

From: Pascal Quantin <pascal@xxxxxxxxxxxxx>
Date: Sat, 16 May 2020 23:06:10 +0200


Le sam. 16 mai 2020 à 23:01, Richard Sharpe <realrichardsharpe@xxxxxxxxx> a écrit :
On Sat, May 16, 2020 at 8:51 AM Pascal Quantin <pascal@xxxxxxxxxxxxx> wrote:
>
> Hi Richard,
>
> Le sam. 16 mai 2020 à 17:34, Richard Sharpe <realrichardsharpe@xxxxxxxxx> a écrit :
>>
>> On Sat, May 16, 2020 at 6:00 AM João Valverde
>> <joao.valverde@xxxxxxxxxxxxxxxxxx> wrote:
>> >
>> > Hi Richard,
>> >
>> > On 15/05/20 23:46, Richard Sharpe wrote:
>> > > On Fri, May 15, 2020 at 3:33 PM Peter Wu <peter@xxxxxxxxxxxxx> wrote:
>> > >> The "asn1" target rebuilds all asn1 dissectors.
>> > >> Alternatively to rebuild a specific one, use a target such as "generate_dissector-pkcs1".
>> > > Sure, but there seems to be multiple issues.
>> > >
>> > > 1. The 'documented' command placed in the generated source does not
>> > > generate the same source:
>> > > 2. make asn1 modifies the source directory, but it seems to me that it
>> > > should not do that because that breaks one of the out-of-tree
>> > > guarantees that cmake gives you.
>> >
>> > Normally that would be true for a generated source file, but in this
>> > case a choice was made to commit the generated ASN.1 source code to VCS
>> > (for efficiency reasons I presume). Therefore the asn1 target is a
>> > special one designed only to update the ASN.1 source tree and commit the
>> > result.
>>
>> Shouldn't the developer make that decision?
>
>
> That was a decision taken by the developers years ago, so I'm not sure I get your point. The idea is to reduce the build time as those dissectors are not updated that often and generating them takes some time.

I understand that.

However, if I make a change to one of the ASN files, as I just did,
shouldn't it be my decision as to whether or not I want the modified
.c file put in the source tree?

Well, should not you follow the existing agreement? Unless there was a massive vote to change the existing behavior (and why would we?) it seems normal to me to follow what was decided by the community. In any project you have defined rules that you must follow, and that can be eventually changed after an open discussion. Otherwise it becomes quickly a nightmare unmanageable.

Best regards,
Pascal