tech-pkg archive

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

Re: Removing built-in support for sqlite3



Thomas Klausner <wiz%NetBSD.org@localhost> writes:

> Hi!
>
> NetBSD comes with sqlite3 in the base system. It mostly imported for
> supporting a heimdal feature (since disabled) and for apropos(1).
>
> The version is not kept up-to-date (NetBSD 10 comes with 3.26, pkgsrc
> has 3.45). Some software in pkgsrc requires features that are not
> enabled in the base system version.
>
> I'd like to remove builtin support for sqlite3 from pkgsrc (basically,
> cvs rm databases/sqlite3/builtin.mk).
>
> - We'll know what features the used sqlite3 will have, by depending on a
>   (pkgsrc) version that has that feature enabled by default.
>
> - We avoid linking against both version in the same executable (if one
>   dependency is happy with the older version, but something else wants
>   a newer one and pulls in the pkgsrc version).
>
> - The sqlite3 package itself is small (32MB) and pulls in no other
>   runtime dependencies.

In general that sounds good.

  How do we deal with operating systems where libraries that are treated
  as builtin include sqlite3?

An example is NetBSD 9, where:

  $ ldd /usr/lib/libkrb5.so
  /usr/lib/libkrb5.so:
          -lhx509.6 => /usr/lib/libhx509.so.6
          -lasn1.10 => /usr/lib/libasn1.so.10
          -lcom_err.8 => /usr/lib/libcom_err.so.8
          -lc.12 => /usr/lib/libc.so.12
          -lroken.20 => /usr/lib/libroken.so.20
          -lutil.7 => /usr/lib/libutil.so.7
          -lcrypt.1 => /usr/lib/libcrypt.so.1
          -lcrypto.14 => /usr/lib/libcrypto.so.14
          -lwind.1 => /usr/lib/libwind.so.1
          -lheimbase.2 => /usr/lib/libheimbase.so.2
          -lsqlite3.1 => /usr/lib/libsqlite3.so.1

Are there other examples?  Or is this discussion truly about NetBSD 9
heimdal?

Checking NetBSD 10, I find sqlite3 linked to
  /usr/lib/libhdb.so
  /usr/lib/libkadm5clnt.so
  /usr/lib/libkadm5srv.so
  /usr/lib/libkdc.so

I'm pretty sure these are 10 libs, because:

  -r--r--r--  1 root  wheel  33848 Jan  6  2004 /usr/lib/libkadm5clnt.so.7.0
  lrwxr-xr-x  1 root  wheel     19 Jan  6  2004 /usr/lib/libkadm5clnt.so.7 -> libkadm5clnt.so.7.0
  -r--r--r--  1 root  wheel  35724 Jan 28  2009 /usr/lib/libkadm5clnt.so.8.0
  lrwxr-xr-x  1 root  wheel     19 Jan 28  2009 /usr/lib/libkadm5clnt.so.8 -> libkadm5clnt.so.8.0
  -r--r--r--  1 root  wheel  39060 Nov 17  2014 /usr/lib/libkadm5clnt.so.10.0
  lrwxr-xr-x  1 root  wheel     20 Nov 17  2014 /usr/lib/libkadm5clnt.so.10 -> libkadm5clnt.so.10.0
  -r--r--r--  1 root  wheel  48191 Apr  8  2017 /usr/lib/libkadm5clnt.so.13.0
  lrwxr-xr-x  1 root  wheel     20 Apr  8  2017 /usr/lib/libkadm5clnt.so.13 -> libkadm5clnt.so.13.0
  -r--r--r--  1 root  wheel  60304 Aug 13  2023 /usr/lib/libkadm5clnt.so.14.0
  lrwxr-xr-x  1 root  wheel     20 Aug 13  2023 /usr/lib/libkadm5clnt.so.14 -> libkadm5clnt.so.14.0
  -r--r--r--  1 root  wheel  93060 May  7 07:14 /usr/lib/libkadm5clnt_p.a
  -r--r--r--  1 root  wheel  60304 May  7 07:14 /usr/lib/libkadm5clnt.so.15.0
  lrwxr-xr-x  1 root  wheel     20 May  7 07:14 /usr/lib/libkadm5clnt.so.15 -> libkadm5clnt.so.15.0
  lrwxr-xr-x  1 root  wheel     20 May  7 07:14 /usr/lib/libkadm5clnt.so -> libkadm5clnt.so.15.0
  -r--r--r--  1 root  wheel  87828 May  7 07:14 /usr/lib/libkadm5clnt.a


Possibilities are:

  1) Tell people that NetBSD 9 is too crufty to use.  Perhaps, formalize
  this by deprecating it 4 years after 9.0 or 1 year after 10.0,
  whichever is later.  (Not actually kidding about the second part, but
  that's out of scope.)  If it's 10 too, tell them to run current.

  2) For any package which bl3's a library which has sqlite on a
  platform, reject that package as builtin.  Thus, base heimdal will be
  ignored on 9.

  3) Ask that the heimdal-not-sqlite3 change be pulled up to 9, and then
  tell people that they can only use pkgsrc on 9 past that date.   

  4) Hope that conflicts from pkgsrc sqlite and base sqlite from heimdal
  aren't a big deal in practice.

  5) Default disable krb options in pkgsrc, for packages that want
  sqlite3, and hand the problem to the small number of users that use
  those.


I think (2) is the only viable approach.  It does require anybody to
configure pkgsrc heimdal to re-use base config, but that is likely not
that hard.




Home | Main Index | Thread Index | Old Index