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

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: