modelica/fmi-cross-check

dSPACE FMUs with backslashes in path

t-sommer opened this issue · 5 comments

Some TargetLink FMUs (e.g. Fmucontroller.fmu) have backslashes (\) in their file paths which causes problems when extracting the archive on Linux and macOS.

When extracting the FMU I get a flat list of files with backslashes instead of subfolders:

$ ls
binaries\win32\Fmucontroller.dll	sources\controller_fri.h
binaries\win64\Fmucontroller.dll	sources\controller_tlaf.c
documentation\_main.html		sources\controller_tlaf.h
modelDescription.xml			sources\fmuTemplate.h
sources\Fmucontroller.c			sources\tl_basetypes.h
sources\controller.c			sources\tl_defines_a.h
sources\controller.h			sources\tl_types.h
sources\controller_fri.c

@IZacharias, can you take a look at this?

Btw: for FMI 2.0 the documentation should be in documentation/index.html not documentation/_main.html

@t-sommer : I executed fmpy.cross_check.validate_vendor_repo, but no error was reported regarding backslashes. Which tool did you use to check the FMUs?

@IZacharias: validate_vendor_repo does not detect any possible problem. Backslashes in ZIP files are not allowed (see also modelica/fmi-standard#547). You can run fmpy compile Fmucontoller.fmu on macOS or Linux to reproduce the problem.

You could also use unzip -l Fmucontroller.fmu | grep "\\\\" to see all files with backslashes in the zip-file.