public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
From: Adam Dinwoodie <adam@dinwoodie.org>
To: cygwin-apps@cygwin.com
Subject: Re: [ITP] libinih
Date: Wed, 11 Jan 2023 23:16:37 +0000	[thread overview]
Message-ID: <20230111231637.dbjlug2kpb2oa47i@lucy.dinwoodie.org> (raw)
In-Reply-To: <0ab55d15-f73d-b471-52c4-07c6acc829fb@dronecode.org.uk>

On Wed 11 Jan 2023 at 03:14:20PM +0000, Jon Turney wrote:
> On 09/01/2023 16:32, Adam Dinwoodie via Cygwin-apps wrote:
> > As requested at [0], I've offered to package libinih for Cygwin.  It has
> > a BSD license[1] and is already packaged for a bunch of *nix distros,
> > including Fedora, Debian and Arch[2].
> > 
> > [0]: https://cygwin.com/pipermail/cygwin/2023-January/252780.html
> > [1]: https://github.com/benhoyt/inih/blob/master/LICENSE.txt
> > [2]: https://repology.org/project/inih/versions
> > 
> > Provisional release packages are available at [3], and I've copied the
> > main .hint file below for reference.
> > 
> > [3]: https://github.com/me-and/Cygwin-inih/releases/tag/v56-1-rc1
> 
> Thanks.
> 
> This looks good, except...
> 
> > I've not maintained this sort of library before; I've defaulted to
> > including everything in a single package, but Lem suggested splitting
> > out a -devel package to contain the header files[4][5].  I don't think
> > it makes much difference either way -- the monolithic package is only
> > ~16 KB compressed -- and it seems plenty of other Cygwin packages have
> > their header files in the same package as the runtime package, but I'd
> > appreciate thoughts from everyone else on what's thought to be best
> > practice these days...
> 
> I'd ask you to split this into libinih0 and libinih-devel packages.
> 
> Firstly, I don't want to get into making judgements about what the size
> threshold is for a package to be "small enough to not bother".
> 
> Secondly, I think, if there's ever a soversion change (i.e. cyginih-0.dll
> becomes cyginih-1.dll), structuring it as a single package makes it
> impossible to parallel install the old and new soversions together, thus
> breaking any other packages linked with the old soversion until they are
> rebuilt.

Makes sense!  Here's a rebuild:

https://github.com/me-and/Cygwin-inih/releases/tag/v56-1-rc2

> If you're aware of other packages "done wrong" based on that understanding,
> I guess that's something that needs looking into...

Ah, I think I was thinking about this backwards.  I'd thought that, for
example, make is a problem, because it's not marked as a "*-devel"
package, but it puts a header file in /usr/include as well as all the
files needed by mere users of make.[0]

[0]: https://cygwin.com/cgi-bin2/package-cat.cgi?file=x86_64%2Fmake%2Fmake-4.4-1

It sounds like that's not a problem at all, though: make doesn't provide
any libraries to link against.

What might be more of a problem is something like file, which does
provide a DLL for other packages to link against, and which isn't
separated out into a "lib*" package.[1]

[1]: https://cygwin.com/cgi-bin2/package-cat.cgi?file=x86_64%2Ffile%2Ffile-5.41-2&grep=usr%2Fbin%2F.%2A%5C.dll

(But maybe there's something about file that means we can be confident
it'll never have an soversion change?  Almost all my practical
experience with wrangling library linking is with software appliances
that ignore the issue by replacing all the binaries in an effectively-
atomic operation, so I am well out of my areas of expertise here!)

  reply	other threads:[~2023-01-11 23:16 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-09 16:32 Adam Dinwoodie
2023-01-11 11:56 ` Lemures Lemniscati
2023-01-11 15:14 ` Jon Turney
2023-01-11 23:16   ` Adam Dinwoodie [this message]
2023-01-13 14:27     ` Jon Turney
2023-01-15  6:12       ` Lemures Lemniscati
2023-01-15 22:49       ` Adam Dinwoodie
2023-01-16 12:41         ` Jon Turney
2023-01-13 14:28     ` Jon Turney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230111231637.dbjlug2kpb2oa47i@lucy.dinwoodie.org \
    --to=adam@dinwoodie.org \
    --cc=cygwin-apps@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).