IBM / ibmi-bob

A build system for creating IBM i-native objects using GNU Make.
https://ibm.github.io/ibmi-bob
Apache License 2.0
47 stars 20 forks source link

crtfrmstmf: error: argument --ccsid: expected one argument #300

Closed arco400 closed 5 months ago

arco400 commented 7 months ago

BOB Version 2.4.25.

When running build all from VS Code, for the payroll-bob example, the compile of MSTDSP is failing with the following error in MSTDSP.log:

crtfrmstmf: error: argument --ccsid: expected one argument

The build log contains:

=== Creating DSPF [MSTDSP.DSPF] in BOBOBJ /QOpenSys/pkgs/lib/bob/src/scripts/crtfrmstmf --ccsid -f /home/SIMONSEA/builds/payroll-bob/QDDSSRC/MSTDSP.DSPF -o MSTDSP -l BOBOBJ -c CRTDSPF -p "ENHDSP(*YES) RSTDSP(*YES) DFRWRT(*YES) AUT() OPTION(*EVENTF *SRC *LIST) TEXT( )" ✕ Failed to create MSTDSP.FILE!

edmundreinhardt commented 5 months ago

It seems that a tgtccsid of empty string was specified in the .ibmi.json or the iproj.json Can you please show me what those files contain for this failure?

It looks like BOB should handle that more graciously and default to the Job CCSID if there is an empty string by accident

arco400 commented 5 months ago

Due to the ModuleNotFoundErro issue 304 I had switched back to version 2.3.9-1. I am just trying to build the unmodified payroll-bob project from GitHub, and it's ibmi.json file contains 37 as tgtccsid.

Build all gives me now the result below. But perhaps that is not representative since it is not the same bob version as the error initially occured on.

` Action: Build all (11:26:19 PM) Working directory: /home/simonsea/builds/payroll-bob Commands: OPT=*EVENTF BUILDLIB=QGPL /QOpenSys/pkgs/bin/makei build

make -k BUILDVARSMKPATH="/tmp/tmp0a0g83w3" -k BOB="/QOpenSys/pkgs/lib/bob" -f "/QOpenSys/pkgs/lib/bob/mk/Makefile" all make: Nothing to be done for 'all'. Objects: 0 failed 0 succeed 0 total Build Completed!

Fetching errors from .evfevent. Downloaded files as part of Action: .logs, .evfevent `

edmundreinhardt commented 5 months ago

In the scenario above it seems that nothing was out of date, so nothing needed to be built.

edmundreinhardt commented 5 months ago

So I just test the https://github.com/edmundreinhardt/payroll-bob with bob 2.4.26 and I get

image

Notice that everything built cleanly but there seemed to be an issue with downloading the event file for MSTDSP. But it had no errors.

edmundreinhardt commented 5 months ago

I introduced an error for MSTDSP and it showed the error correctly

image

@arco400 Are you using the IBM i Project Explorer VS Code Extension. It really makes it so much easier.

I just tried to build again after fixing that error and I got your exact results. With nothing to build. So it seems I have reproduced your error.

When I look that the IBM i Deployment Output channel I see that the source file was not uploaded

image

When the file is uploaded

image

The build is clean

image
arco400 commented 5 months ago

@edmundreinhardt I have even deleted the target build folder to be sure that I would build from scratch. But it gives me the same result.

I have the IBM i project explorer extension installed. What would that help for this situation? I do not see an "IBM Deployment" tab as in your screenshots. How can I activate that?

image

edmundreinhardt commented 5 months ago

Go to the Output tab and select 'IBM i Deployment'

image
edmundreinhardt commented 5 months ago

@arco400 What type of deployment are you using?

image
edmundreinhardt commented 5 months ago

to trigger a full build you could clear the target objects in the library or touch all of the source

arco400 commented 5 months ago

to trigger a full build you could clear the target objects in the library or touch all of the source

@edmundreinhardt sorry I did not mention, but I had emptied that as well. My target lib is BOBDTA (and set as *CURLIB)

I am deploying by the "build all" command, and then deploy "all files".

image

image

The IBM i deployment window reports:

`Deployment started using method "compare"

Remote directory is empty; switching to 'deploy all' Created deployment tarball C:\Users\Simonsea\AppData\Local\Temp\tmp-19140-gwbNBLYMW3yi-.tar Uploaded deployment tarball as /tmp/deploy_O_if49o18r.tar 15 file(s) uploaded to /home/simonsea/builds/payroll-bob .ibmi.json .vscode/actions.json .vscode/rpglint.json QDDSSRC/MSTDSP.DSPF QDDSSRC/Rules.mk QPROTOSRC/ERRORTABLE.RPGLEINC QRPGLESRC/PAYROLL.pgm.RPGLE QRPGLESRC/Rules.mk QSQLSRC/.ibmi.json QSQLSRC/EMPMST.TABLE QSQLSRC/PRJMST.TABLE QSQLSRC/RSNMST.TABLE QSQLSRC/Rules.mk Rules.mk iproj.json

/tmp/deploy_O_if49o18r.tar deleted C:\Users\Simonsea\AppData\Local\Temp\tmp-19140-gwbNBLYMW3yi-.tar deleted

Deployment finished at 3:25:34 PM`

And the Terminal window reports:

`Running Action: /QOpenSys/pkgs/bin/makei build (3:25:35 PM) Working directory: /home/simonsea/builds/payroll-bob Commands: /QOpenSys/pkgs/bin/makei build

make -k BUILDVARSMKPATH="/tmp/tmp56_2k7bo" -k BOB="/QOpenSys/pkgs/lib/bob" -f "/QOpenSys/pkgs/lib/bob/mk/Makefile" all make: Nothing to be done for 'all'. Objects: 0 failed 0 succeed 0 total Build Completed!

Fetching errors from .evfevent. Downloaded files as part of Action: .logs, .evfevent`

arco400 commented 5 months ago

After (re)installing BOB version 2.4.26-1 the issue did not occur anymore. I don't know if the version issue had to do with it, or if it were something else causing this. Thanks @edmundreinhardt for your support!