https://bugs.winehq.org/show_bug.cgi?id=52710
Bug ID: 52710 Summary: Line wrapping with newlines in command line tool output (ISCC.exe) Product: Wine Version: unspecified Hardware: x86-64 OS: Mac OS X Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: 20220321.winehq.org@darkart.com
[This was discovered using CrossOver by CodeWeavers, going from version 20.0.4 to 21.1.0 and CodeWeavers has asked me to open a bug here for it.]
Output from the command line tool "ISCC.exe" (part of the InnoSetup tools) now has extra newlines that are doing line wrapping. Unfortunately this breaks up words in the output which impedes our parsing of the output.
Example output when running under wine from CrossOver 21.1.0:
\r\r\n\u001b[?25h\u001b[?25lCopyright (C) 2001-2004 Alex Yackimoff. All rights reserved.\r\r\n\u001b[?25h\r\r\n\u001b[?25lCompiler engine version: Inno Setup 5.5.9 (u)\r\r\n\u001b[?25h\r\r\n\u001b[?25l[ISPP] Preprocessing.\r\r\n\u001b[?25h\u001b[?25l[ISPP] Preprocessed.\r\r\n\u001b[?25h\r\r\n\u001b[?25lParsing [Setup] section, line 28\r\r\n\u001b[?25h\u001b[?25lParsing [Setup] section, line 29\r\r\n\u001b[?25h
I believe the "[?25h" and "[?25l" are escape sequences that were not present when running under CrossOver 20.0.4. The '\r' and '\n' characters are showing up in what used to be single-line text, like:
Using an external code-signing tool, pleas\r\r\ne attach your digital signature to the following executable file
Note how the word "please" has been fragmented.
https://bugs.winehq.org/show_bug.cgi?id=52710
--- Comment #1 from Austin English austinenglish@gmail.com --- Does this have a public download available? It sounds like it was a regression (i.e., this worked before)?
https://bugs.winehq.org/show_bug.cgi?id=52710
--- Comment #2 from 20220321.winehq.org@darkart.com --- Yes, there is a download available at:
https://jrsoftware.org/isinfo.php
and yes, this worked before (no newlines inserted into the words).
I'll see about getting a setup and script that will reproduce the problem - I have one that works for CrossOver, need to check and see if it needs any changes to work with non-CrossOver wine.
https://bugs.winehq.org/show_bug.cgi?id=52710
--- Comment #3 from 20220321.winehq.org@darkart.com --- Created attachment 72075 --> https://bugs.winehq.org/attachment.cgi?id=72075 inno setup test file
test file for innosetup (version 5.5.9 is what we are using)
https://bugs.winehq.org/show_bug.cgi?id=52710
--- Comment #4 from 20220321.winehq.org@darkart.com --- Created attachment 72076 --> https://bugs.winehq.org/attachment.cgi?id=72076 shell script to demonstrate problem
https://bugs.winehq.org/show_bug.cgi?id=52710
--- Comment #5 from 20220321.winehq.org@darkart.com --- Unfortunately I do not have a system that I can test non-CrossOver wine on. I think the attached script and innosetup file will work, but the script may need adjustments to "WIN_BIN_USE" and "INNO_BIN" to work correctly (and hopefully that is all, my apologies for not being able to properly test it).
https://bugs.winehq.org/show_bug.cgi?id=52710
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://jrsoftware.org/isin | |fo.php Keywords| |download, regression
https://bugs.winehq.org/show_bug.cgi?id=52710
Eric Pouech eric.pouech@orange.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |eric.pouech@orange.fr
--- Comment #6 from Eric Pouech eric.pouech@orange.fr --- confirming (partially)
---- installation notes
installation of version 5.5.9 non unicode version - same version as in #0, from https://files.jrsoftware.org/is/5/ - picking up non unicode version (for the record)
side note: - installation is done in Program Files (x86), while report in #0 gets installation in Program Files (for the record)
run the whole stuff from Inno Setup 5 directory (for simplicity) (all paths below are in this directory)
need a couple of more files (than attachments #1 and #2) - touch EULA.rtf - touch Setup.bmp - touch SetupSmall.bmp - cp <whatever ico you want>.ico icon.ico
---- running notes
confirming that now ANSI escape sequences appear in output but that doesn't impact expect (given the way the expect script has been written - ie no sync on beginning or end of line)
<[[output]]> Copyright (C) 1997-2016 Jordan Russell. All rights reserved. Portions Copyright (C) 2000-2016 Martijn Laan Inno Setup Preprocessor Copyright (C) 2001-2004 Alex Yackimoff. All rights reserved.
Compiler engine version: Inno Setup 5.5.9 (a)
[ISPP] Preprocessing. [ISPP] Preprocessed.
Parsing [Setup] section, line 32 --snip--- Parsing [Setup] section, line 70 Reading file (LicenseFile) Reading file (WizardImageFile) File: C:\Program Files (x86)\Inno Setup 5\Setup.bmp Reading file (WizardSmallImageFile) File: C:\Program Files (x86)\Inno Setup 5\SetupSmall.bmp Preparing Setup program executable Updating icons (SETUP.E32) Using existing signed uninstaller file: C:\Program Files (x86)\Inno Setup 5\TheOutDir\uninst-5.5.9 (a)-983e611017.e32 Error in C:\Program Files (x86)\Inno Setup 5\testFile.iss: Signed uninstaller mode is enabled. Using an external code-signing tool, please attach your digital signature to the following executable file:
C:\Program Files (x86)\Inno Setup 5\TheOutDir\uninst-5.5.9 (a)-983e611017.e32
and compile again.
saw uninstaller signing failure <[[output]]>
--- and now? that leaves the interleave (pleas\r\r\ne from #0) as the potential culprit for the issue I checked (from the example) that iscc.exe doesn't spawn new processes
that leaves several options:
a) iscc.exe behaves differently between #0 and my testings
b) it's a FIXME debug info from wine running iscc.exe. you can try to turn them off (export WINEDEBUG=fixme-all,err-all could help)
c) it's another wine's session program outputing in // of ISCC a possible work around would be: - in the runInExpect.sh script, **before** running expect, to do something like: wine notepad - having the wine session launched before the expect will ensure all the other regular programs run in the session will not get attached to the expect pty - (I won't comment terminating notepad, it can be more complicated)
d) it's a crossover thingie maybe quirk from c) could help too; maybe not
e) some other things?
in all cases, having the full log of the wine session output (through exp_internal or exp_log if it works) could help