[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#826661: RFS: groonga/6.0.4-1



Hi,

Thank you for reviewing!

> Hi, I did a debdiff between them, and I see some changes that might be ABI breaking the library:
> 
> -GRN_API grn_rc grn_timeval_now(grn_ctx *ctx, grn_timeval *tv);
> -GRN_API grn_rc grn_timeval2str(grn_ctx *ctx, grn_timeval *tv, char *buf, size_t buf_size);
> -struct tm *grn_timeval2tm(grn_ctx *ctx, grn_timeval *tv, struct tm *tm_buffer);
> -grn_rc grn_str2timeval(const char *str, uint32_t str_len, grn_timeval *tv);
> 
> 
> removing symbols might be an ABI break

The above functions are kept in lib/time.c. They are not removed.

> also adding a field to a struct
> +  grn_bool is_dirty;
> 
> (not always)
> 
> as well as adding them in the middle of a struct
> -  uint32_t reserved[1003];
> +  uint32_t n_dirty_opens;
> +  uint32_t reserved[1002];
> grn_pat_delinfo delinfos[GRN_PAT_NDELINFOS];
> grn_id garbages[GRN_PAT_MAX_KEY_SIZE + 1];

The n_dirty_opens is added, but it is just allocated from reserved area. 
so it keeps compatibility.
 
> so, please answer wrt ABI/API breakage.

I've contacted upstream author, and heard the following policy about Groonga ABI.

There are two kind of policy about ABI for Groonga.

* experimental APIs
  Groonga is shipped every month. The new release sometimes contains experimental API.
  There is no guarantee for it. It may be suddenly changed. Even though such a case,
  it doesn't regarded as ABI breakage because it is experimental.
* stable APIs
  if this kind of APIs are changed, it needs to be raise ABI version, 
  but these APIs are not changed yet.

Attachment: pgpv4qJMSnGes.pgp
Description: PGP signature


Reply to: