Open realsimix opened 1 year ago
There are some tests in nx-X11/config/cf/Imake.rules that probably return the wrong result, e.g.
@if [ -f new ]; then test -n "${VERBOSE}" && ...
All these came in with commit 637a170e7c970e480c1ad6bf131698f0919644c7.
So either we need to ensure VERBOSE really has a value before starting build or we need to improve the checks. Or both ;-)
Uli
On Fri, May 26, 2023 at 11:30 AM Simon Matter @.***> wrote:
Hi,
I've just tried to rebuild my packages with latest code and found this strange issue. If $VERBOSE is empty or undefined, I get this build error on RHEL 7:
- /usr/bin/make CONFIGURE=/home/pkgbuild/rpmbuild/BUILD/nx-libs-3.5.99.27/local_configure \ LIBDIR=/usr/lib64 'CDEBUGFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \ -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' \ 'LOCAL_LDFLAGS=-Wl,-z,relro ' 'SHLIBGLOBALSFLAGS=-Wl,-z,relro ' IMAKE_DEFINES=-DUseTIRPC=NO VERBOSE= Makefile:36: xkbcomp devel package missing, using imake default values
===> build Makefile:36: xkbcomp devel package missing, using imake default values
===> imakeconfig make[3]: xmakefile: No such file or directory make[3]: No rule to make target `xmakefile'. Stop. make[2]: [VerifyOS] Error 2 make[1]: [imakeconfig] Error 2 make: [build] Error 2
This was not a problem with 3.5.99.26 and only happens on a bit older distributions.
I didn't dig into details because adding VERBOSE=1 is an easy fix. But, does anyone have an idea where this comes from?
Thanks, Simon
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>
Things are getting more confusing the deeper I dig. What I found out so far is this:
On certain systems the build fails if no $VERBOSE
variable is defined. But, from what I saw, all the test -n ${VERBOSE} &&
changes should be fine. The reason why building fails is because, without $VERBOSE
defined, we are calling
imake -s -s xmakefile...
in nx-X11/Makefile
. The issue was introduced with commit https://github.com/ArcticaProject/nx-libs/commit/72f11ee838e67757e235e7216fb82679cc3f7d67 where imake
is called with $MFLAGS
.
Can it be that $MFLAGS
is somehow set to -s
automatically if a $VERBOSE
variable is not set, to make make
silent? -s
for make
means silent, while for imake
, it means naming the output file. Can it be that $MFLAGS
should really only be used for make
then and not for imake
?
My patch nx-libs-3.5.99.27-verbose.patch.txt reverts mentioned commit and also fixes some mostly cosmetic issues. It allows building successfully on all my systems, with or without $VERBOSE
being defined.
Regards, Simon
Thanks for that!
I think MFLAGS is not supposed to be passed to imake because as your comment shows it will contain a single -s sometimes which a standard make will interpret as silent while for imake it designates a the file to be generated. So would say reverting that commit is correct.
$ grep MFLAGS nx-X11/config/cf/README ConstructMFLAGS System V option to set MFLAGS make variable
so it is probably system dependent if is set or not.
The double "test -n" are certainly a search and replace fail and need to be fixed.
Separating "set -e" is also a good finding. Looks like my patch was merged too early and without a proper review ;-)
I think we should merge your patch, but separated to multiple commits. Are you willing to provide a pull request?
One more thing: does it also work now if you define VERBOSE without a value, like in your initial post?
Uli
On Fri, May 26, 2023 at 5:33 PM Simon Matter @.***> wrote:
Things are getting more confusing the deeper I dig. What I found out so far is this:
On certain systems the build fails if no $VERBOSE variable is defined. But, from what I saw, all the test -n ${VERBOSE} && changes should be fine. The reason why building fails is because, without $VERBOSE defined, we are calling
imake -s -s xmakefile...
in nx-X11/Makefile. The issue was introduced with commit 72f11ee where imake is called with $MFLAGS.
Can it be that $MFLAGS is somehow set to -s automatically if a $VERBOSE variable is not set, to make make silent? -s for make means silent, while for imake, it means naming the output file. Can it be that $MFLAGS should really only be used for make then and not for imake?
My patch nx-libs-3.5.99.27-verbose.patch.txt reverts mentioned commit and also fixes some mostly cosmetic issues. It allows building successfully on all my systems, with or without $VERBOSE being defined.
Regards, Simon
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
I can confirm that it also works on all tested systems with VERBOSE=
. That's all on Linux with Bash as standard shell.
As I'm not a developer I'm not using Git so I kindly ask you to split the patch and create the PRs for us :)
Thanks, Simon
As mentioned above, I'm not a developer and do not use Git at all. Please have a look at the patches below and apply as you like.
nx-libs-3.5.99.26-old_gcc.patch.txt nx-libs-3.5.99.26-no_include_gcstruct.patch.txt nx-libs-3.5.99.26-cosmetic_fixes.patch.txt nx-libs-3.5.99.26-imake_no_mflags.patch.txt nx-libs-3.5.99.26-separating_set_e.patch.txt
At this point let me ask again about a release which would allow more users to test latest code?
Thanks, Simon
Hi,
I've just tried to rebuild my packages with latest code and found this strange issue. If $VERBOSE is empty or undefined, I get this build error on RHEL 7:
This was not a problem with 3.5.99.26 and only happens on a bit older distributions.
I didn't dig into details because adding VERBOSE=1 is an easy fix. But, does anyone have an idea where this comes from?
Thanks, Simon