[pkg-wine-party] Bug#823991: libpng16-16: generates a ton of noisy warnings

Jens Reyer jre.winesim at gmail.com
Thu May 12 15:25:37 UTC 2016


On 05/11/2016 05:34 PM, Austin English wrote:
> On Wed, May 11, 2016 at 3:47 AM, Tobias Frost <tobi at debian.org> wrote:
>> can you provide more information, like the package version of your installed
>> wine?  Did you mix stable and other suites? What are the libpng pacakges you
>> have installed?
>>
>> (We have binNMUed everything depending on libpng12 so it is strange that your
>> wine thinks it is compiled against libpng12)
>>
>> libpng has this version warning for a reason, as until version 1.4 it was possible to
>> directly access struct members, therefore if those structs changed this *could*
>> cause incompatiblities. The newer API forbids that, so this should be safe.
>>
>> However, taking a (very) short glimpse at the wine packages: Maybe I missed it
>> but it seems from there that they do not declare a Depends on the libpng
>> library package.
>> That could be an explanation why it has not been binNMUed, and this would be
>> actually a bug in wine (policy 3.5)
>>
>> CC'ing wine maintainers, maybe they can tell ...
[...]
> I didn't check Debian package, but upstream definitely uses libpng.
> From configure.ac:
> dnl **** Check for libpng ****
> if test "x$with_png" != "xno"
> then
>     WINE_PACKAGE_FLAGS(PNG,[libpng],,[$X_CFLAGS],[$X_LIBS],
>         [AC_CHECK_HEADERS([png.h])
>         if test "$ac_cv_header_png_h" = "yes"
>         then
>             WINE_CHECK_SONAME(png,png_create_read_struct,
>                 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include
> <png.h>]],[[typeof(png_set_expand_gray_1_2_4_to_8) *p]])],
> 
> [AC_DEFINE(HAVE_PNG_SET_EXPAND_GRAY_1_2_4_TO_8,1,[Define to 1 if
> libpng has the png_set_expand_gray_1_2_4_to_8 function.])])],
>                 [PNG_CFLAGS=""],[$PNG_LIBS -lm -lz],[[libpng[[0-9]]*]])
>         else
>             PNG_CFLAGS=""
>         fi])
> fi
> WINE_WARNING_WITH(png,[test "x$ac_cv_lib_soname_png" = "x"],
>                  [libpng ${notice_platform}development files not
> found, PNG won't be supported.])
> 
> https://source.winehq.org/git/wine.git/blob/HEAD:/configure.ac#l1590

Thanks for the binNMU request, Tobi!

The Debian packages build-depend on libpng-dev, but indeed currently
there's no runtime dependency in the binary packages (it was there in
wine once, but was lost when the wine-development packaging was merged).

I checked all build-dependencies: many already have matching runtime
dependencies, mostly added by ${shlibs:Depends}.

For the rest (including libpng) I'd suggest to add the following runtime
dependencies as Recommends in libwine.

*Feedback, or better solutions, very welcome!*

* I'd prefer to do this automatically, but am not aware of any
  solution.
  E.g. adding ${shlibs:Depends} and ${so:Depends} to every binary
  package doesn't help at all.
  And debian/scripts/dpkg-depgrep, which is already used to create
  ${dlopen:Depends} with the correct package names of ncurses and
  freetype, doesn't work for all packages (the numbers don't always
  match, see below).

* Only "Recommends", because I'm not sure if they are really needed.
  I've only seen this topic for png/jpeg/tiff before. Not sure if just
  nobody noticed any problem before for the other libraries, or if the
  64-bit libraries work for wine32, too. At least there should be many
  use cases that work without them.

* "libwine" is installed always and on every arch, so it is easiest to
  maintain this awful list there.

Missing/Proposed dependencies:
  libxi-dev,          libxi6
  libxt-dev,          libxt6
  libxmu-dev,         libxmu6
  libxrandr-dev,      libxrandr2
  libxrender-dev,     libxrender1
  libxkbfile-dev,     libxkbfile1
  libxxf86vm-dev,     libxxf86vm1
  libxxf86dga-dev,    libxxf86dga1
  libxinerama-dev,    libxinerama1
  libxcomposite-dev,  libxcomposite1
  libpng-dev,         libpng16-16
  libssl-dev,         libssl1.0.2
  libgsm1-dev,        libgsm1
  libjpeg-dev,        libjpeg62-turbo
  libtiff-dev,        libtiff5
  libxslt1-dev,       libxslt1.1
  unixodbc-dev,       libodbc1
  libcups2-dev,       libcups2
  libdbus-1-dev,      libdbus-1-3
  freeglut3-dev,      freeglut3
  libosmesa6-dev,     libosmesa6
  libgnutls28-dev,    libgnutls30
  libgettextpo-dev,   libgettextpo0

To check the result I first purged all wine and i386 packages on my
amd64 system and then installed the current wine-development. A upgrade
to my proposed version additionally installs the following packages:
  freeglut3:i386
  libavahi-client3:i386
  libavahi-common-data:i386
  libavahi-common3:i386
  libcomerr2:i386
  libcups2:i386
  libgettextpo0:i386
  libgssapi-krb5-2:i386
  libjbig0:i386
  libjpeg62-turbo:i386
  libk5crypto3:i386
  libkeyutils1:i386
  libkrb5-3:i386
  libkrb5support0:i386
  libltdl7:i386
  libodbc1:i386
  libosmesa6:i386
  libtiff5:i386
  libunistring0:i386
  libxcomposite1:i386
  libxinerama1:i386
  libxkbfile1:i386
  libxmu6:i386
  libxrandr2:i386
  libxslt1.1:i386
  libxt6:i386
  libxxf86dga1:i386
Note: only i386 packages were installed, seems for the native arch every
package is already depended on by unrelated packages here. This took
(only) 14MB additonal diskspace, while wine (amd64+i386) with the
current dependencies already consume 660MB.

I assume these build-dependencies don't need a dependency in a binary
package:
  debhelper (>= 9.20151220),
  dh-autoreconf,
  flex,
  lzma,
  bison,
  quilt,
  gettext,
  oss4-dev,
  libxml-simple-perl,
  sharutils,
  pkg-config,
  dctrl-tools,
  khronos-api,
  unicode-data (>= 8.0-1~),
  freebsd-glue [kfreebsd-any],

And finally these build-dependency already have a related runtime
dependency:
  libx11-dev,
  libxext-dev,
  libxcursor-dev,
  libgl1-mesa-dev,
  libglu1-mesa-dev,
  libxml2-dev,
  libpcap-dev,
  libpulse-dev [!kfreebsd-any],
  liblcms2-dev,
  libldap2-dev,
  libopenal-dev,
  libmpg123-dev,
  libasound2-dev,
  libncurses5-dev,
  libfreetype6-dev (>= 2.5.1),
  libfontconfig1-dev,
  libgstreamer-plugins-base1.0-dev,
  ocl-icd-opencl-dev,

Greets everyone
jre



More information about the pkg-wine-party mailing list