Re: Bug#948120: libreoffice: Incorrect conditional test to enable BUILD_NOGUI_PACKAGES
Hi,
On Sat, Jan 04, 2020 at 02:33:51PM +0100, John Paul Adrian Glaubitz wrote:
> On 1/4/20 2:28 PM, Rene Engelhard wrote:
> > That just means that BUILD_NOGUI_PACKAGES=n is set and the nogui part is not even tried.
> > ppc64 is fast and has server uses, so should definitel get -nogui.
>
> That might be the case. But ppc64 is currently *not* in the list
> of OOO_NOGUI_ARCH. Yet your rules file was executing parts of
> the code as if it was in OOO_NOGUI_ARCH.
Yes, because BUILD_NOGUI_PACKAGES=y is set because of findstring vs. filter.
There you *are* right, I didn't say anything else.
> > I am not mistaken:
> >
> > No, this is just a workaround. The real fix would imho be to find out
> > why .desktop is not present when it's tried to be removed..
>
> What? I'm not sure why this would be a workaround.
But that just disables -nogui there which is not what we want
-> workaround.
Non-workaround would be to fix OOO_NOGUI_ARCHS to have ppc64.
> You didn't put ppc64 in the list of NOGUI architectures.
Yes, because I didn't have it in radar when I did this.
> That means the nogui code itself wasn't build.
Erm, no. Not at the stage of the failure.
The cause of build is as follows:
1 if BUILD_NOGUI_PACKAGES=y build LO with --disable-gui
1a save the built tree
2 build LO normally without --disable-gui
( 3 build the tests and run them, if enabled )
( 4 build languages etc, only -A or -b case )
5 make install
6 if BUILD_NOGUI_PACKAGES=y:
a copy core to core-nogui etc
b replace files in -core-nogui with the files built in 1 and
saved in 1a and remove files present in -core but not in
-core-nogui
c remove lib*ui.so
d remove .desktop
d fails.
And a build log clearly shows 1,1a,2,5 done.
Though because ppc64el is not in the -core-nogui packages' arch list
it's not copied:
>From the build log:
[...]
# create no-GUI packages
for p in report-builder-bin; do \
rm -rf debian/libreoffice-$p-nogui; \
cp -ra debian/libreoffice-$p debian/libreoffice-$p-nogui; \
for i in debian/libreoffice-$p-nogui/usr/lib/libreoffice/program/*; do \
if [ -e instdir-nogui/program/`basename $i` ]; then \
cp -v instdir-nogui/program/`basename $i` \
debian/libreoffice-$p-nogui/usr/lib/libreoffice/program; \
else \
rm -fv debian/libreoffice-$p-nogui/usr/lib/libreoffice/program/`basename $i`; \
fi; \
done; \
done
'instdir-nogui/program/librptlo.so' -> 'debian/libreoffice-report-builder-bin-nogui/usr/lib/libreoffice/program/librptlo.so'
'instdir-nogui/program/librptuilo.so' -> 'debian/libreoffice-report-builder-bin-nogui/usr/lib/libreoffice/program/librptuilo.so'
'instdir-nogui/program/librptxmllo.so' -> 'debian/libreoffice-report-builder-bin-nogui/usr/lib/libreoffice/program/librptxmllo.so'
# remove lib*uilo.so in --nogui
find debian/libreoffice-*-nogui/usr/lib/libreoffice/program/lib*uilo.so -exec rm {} \;
# and (no UI, so not needed) not needed .desktop files
find debian/libreoffice-*-nogui/usr/share/applications/*.desktop -exec rm {} \;
find: ‘debian/libreoffice-*-nogui/usr/share/applications/*.desktop’: No such file or directory
make: *** [debian/rules:2699: debian/stampdir/install-arch] Error 1
dpkg-buildpackage: error: fakeroot debian/rules binary-arch subprocess returned exit status 2
Note the loop missing -core, -writer, -calc etc which is the packages having a .desktop file,
so the rm doesn't find anything and fails.
> You want to use "filter" when looking for architectures, not "findstring"
> which will match "ppc64" in "ppc64el".
Maybe, yes. But in fact ppc64 should be added to OOO_NOGUI_ARCHS anyways, which is
the real issue here.
Regards,
Rene
Reply to: