Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for autobuild folder renaming, or warn that custom name is not supported, custom folder name is not working for me #288

Open
ruthan opened this issue Dec 3, 2024 · 5 comments

Comments

@ruthan
Copy link

ruthan commented Dec 3, 2024

I found out that on my machine is NTVDMx64 properly compiled only if folder is named autobuild, when i rename it im getting near to end errors what some path w\NTOSBE-master not found, file does not exists etc..
Files like ssizle.cmd and ofter are not found, they exists in NTOSBE-master are not found.

Whole path is D:\Navypal\autobuildSomething\w\NTOSBE-master
Path D:\Navypal\autobuild\w\NTOSBE-master is working fine.
I have tried to add D:\Navypal\autobuildSomething to WIndows PATH variable, its does not fix it.
I used just normal english characters, nothing fancy.
It seems that issue just with copping already compiled files.

I seems that some more robust parser / file finder is needed. Before i got Warning that "-" character is withing the path, so i removed it too, but does not fixed the problem. Maybe you just need to use "path" logic to ensure than path is used correctly.

Im also not sure that read console background means, if its indicator of some error or not, because its red during compilation, but at the end, it can sometimes turn to green, maybe its only.

There is also file already exists issues, it would make sense to clean target directories et the start or rename old release directory.

@leecher1337
Copy link
Owner

This looks like the issue with the path length that mustn't exceed 30 characters in total (because Windows has a hard-coded total path length of 260 characters and this seems to get exceeded for some files when base path > 30 chars).
Now there is a check for it in the build script that should create a temporary drive in this case, but it checks for 30 characters. Possibly I need to lower the limit to 29.

autobuild-ccpu-chk.cmd has the following line in it:

if not [%WKDIR:~0,-30%]==[] SET NEEDSUBST=1

You can try to change 30 to 29 and see if it then build correctly. Maybe a off-by-1 bug when I counted the maximum character count allowed.

@ruthan
Copy link
Author

ruthan commented Dec 8, 2024

My patch was longer for sure than 30 characters, because im trying to name directories as descriptive as i can. I saw some new drive during compilation, but it probably was not exactly 30, but abit longer.

It seems that some return step form that new virtual drive back Windows is not working or keep all neded data.

Im also unsure about path lenght, if building scripts are using Windows path addition, its still limited to prehistoric 2048 characters, i constantly struggle with this limit. Not big improvent form DOS 6.22 and DOS 256 letters.

There is some PATHEXT on my machine now its maybe some workaround extension. Maybe this could be problem, i triend to add autobuild directory into path, but i still had this problem.

@leecher1337
Copy link
Owner

I tried compiling with path d:\Navypal\autobuildSomethingOnAVeryLongPath
So it automatically did a subst o: drive for me, compiled there and ran through without issues. I don't know what is causing problems on your machine. As long as it does the subst, there shouldn't be a problem building as path length is <260 character limit then on the virtual drive and virtual drive gets removed after compilation.

@ruthan
Copy link
Author

ruthan commented Dec 9, 2024

I have idea and i simulated it now, its not that simple as it can look.

First of all im unsure, what compiling console coloring means, because my console is turned red during compilation, if it would be error report, i dont understand why its still continue and at the end its turning greet and there is sucessfull message. And console keeps to be green / red, BTW after its closed, some clean up at the end would be nice.

Here is possitive log with autobuild directory name and negative with long directory, at ends which these:
The system cannot find the path specified.
_A subdirectory or file H:\NTOSBE-master..\Binaries already exists.
'sizzle.cmd' is not recognized as an internal or external command,
operable program or batch file.
'buildrepoidw' is not recognized as an internal or external command,
operable program or batch file.
'patch.cmd' is not recognized as an internal or external command,
operable program or batch file.
'bld-minnt-haxm.cmd' is not recognized as an internal or external command,
operable program or batch file.
'mkrelease-minnt-haxm.bat' is not recognized as an internal or external command,
operable program or batch file.
The system cannot find the file specified.
Was unable to move releases directory, please go to D:\Navypal\autobuildSuperLongNameTestingLongLongLongTest\w\ntvdmpatch\releases manually an
Press any key to continue . . .
CompilationLogNegative-LongDirectoryName.txt
CompilationLog-Possitive.txt

Im sorry i need to install some better console up this once has to enough long memory, i tried to find some log, but main readme is silent, so far im using just this and seem that there max 9999 lines possibility to save. i found only info about logging when it is already installed.

Im using this console.
https://mridgers.github.io/clink/ im not sure if its used when *.cmd instead of bat is used.
I will use cmder next time.

Where is the problem i have idea:

  1. Because directory name is too long, virtual drive is used and because its virtual, its not excluded by Windows inbuild security antivirus.. User does not know that such disk would be used and so can set this path to antivirus exclusion in advance.
    Yes i added new long patch into Antivirus exclude list..
    On other machine im using Avira, that its very slow to enable some threads and even when i set turn it off for X hours or so, it seems to be still active in some safe mode and keep reporting security threads too.

    I have tried to allow security exceptions and all false threads enabled, but when i use different directory.. There are some messages what some security exception was caught... and there is choice to Send or Not Send suspicious file to MS, even when this thread was set to ignore multiple times.
    If im looking in antivirus settings there is nothing in quarantine, but maybe because is found and hold for moment, some file is not accessible for the moment and it cause script failure..
    But in that case i dont understand, why script keeps to run, it should end with some exception.

    Im trying to keep MS antivirus to set as tolerant as i can. If its possible to just turn it off at the start of compilation by some command it would be nice.
    Yes i can turn it off completely at the start of compilation too..

image
image

I will try next run with Antivirus off. I already dit it, but i discovered that realtime protection is on again after restart, could was off and i still was getting some missing c errors, even without any antivirus popups. I also have cmder on and added Powershell 1.0 to path and renamed Power shell 7 to powershell.exe, i did not see powershell errors during compiling, but saw powershell not found during installation..

BTW i see some PowerPC part its for some emulation for running some old Window NT PowerPC programs?
Again main readme PowerPC search give me nothing.

@ruthan
Copy link
Author

ruthan commented Dec 9, 2024

New log with antivirus fully turned off and long path, its still failing, so its not antivirus thing..

NoAntivirusLongDIretoryName.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants