OpenPrinting / libppd

Apache License 2.0
2 stars 16 forks source link

2.0.0: loop in build dependencies #26

Closed kloczek closed 1 year ago

kloczek commented 1 year ago

Describe the bug

Looks like it is th loop in build dependencies because libppd requires pkgconfifig(libcupsfilters) and on building cups-filters 2.0.0 is required pkgconfifig(libppd). 🤔 Both build time requirements are unconditional so it is not possible to build one of those components first without second one and after building second one rebuild first one with enabled build stage dependency of second one.

https://github.com/OpenPrinting/libppd/blob/2.0.0/configure.ac#L122-L125

https://github.com/OpenPrinting/cups-filters/blob/2.0.0/configure.ac#L120-L123

Probably only way to build libppd is to build it against pkgconfifig(libcupsfilters) 1.x and than build libcupsfilters 2.x and again rebuild libppd however after that it is not possible to bootstrap both components.

kloczek commented 1 year ago

No I was wrong. It is not possible to build libppd against pkgconfifig(libcupsfilters) 1.x

[tkloczko@pers-jacek libppd-2.0.0]$ make V=1
make  all-recursive
make[1]: Entering directory '/home/tkloczko/rpmbuild/BUILD/libppd-2.0.0'
make[2]: Entering directory '/home/tkloczko/rpmbuild/BUILD/libppd-2.0.0'
/bin/sh ./libtool  --tag=CC   --mode=compile /usr/bin/gcc -DHAVE_CONFIG_H -I.    -I/usr/include/cupsfilters  -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Wall -std=gnu11 -D_GNU_SOURCE -c -o ppd/libppd_la-ppd-attr.lo `test -f 'ppd/ppd-attr.c' || echo './'`ppd/ppd-attr.c
libtool: compile:  /usr/bin/gcc -DHAVE_CONFIG_H -I. -I/usr/include/cupsfilters -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -Wall -std=gnu11 -D_GNU_SOURCE -c ppd/ppd-attr.c  -fPIC -DPIC -o ppd/.libs/libppd_la-ppd-attr.o
In file included from ppd/ppd-attr.c:16:
ppd/ppd.h:26:12: fatal error: cupsfilters/log.h: No such file or directory
   26 | #  include <cupsfilters/log.h>
      |            ^~~~~~~~~~~~~~~~~~~
compilation terminated.

log.h is not part of the pkgconfifig(libcupsfilters) 1.x.

tillkamppeter commented 1 year ago

libcupsfilters should not depend on lippd, if so, it is a bug, like something forgotten in configure.ac.

You want to build cups-filters 2.0.0. To do so build libcupsfilters 2.0.0 (libcupsfilters and cups-filters are separate repos now) first, then libppd 2.0.0, and after that cups-filters 2.0.0.

kloczek commented 1 year ago

Closing. I didn't notice that separation of libcupsfilters 2.0.0.