Skip to content

[dcmtk] builtin oficonv data #40145

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

Merged
merged 4 commits into from
Jul 31, 2024
Merged

[dcmtk] builtin oficonv data #40145

merged 4 commits into from
Jul 31, 2024

Conversation

xb284524239
Copy link
Contributor

  • [✓] Changes comply with the maintainer guide.
  • [✓] SHA512s are updated for each updated download.
  • [✓] The "supports" clause reflects platforms that may be fixed by this new version.
  • [✓] Any fixed CI baseline entries are removed from that file.
  • [✓] Any patches that are no longer applied are deleted from the port's directory.
  • [✓] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • [✓] Only one version is added to each modified port's versions file.

@jimwang118 jimwang118 added the category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist label Jul 29, 2024
@jimwang118 jimwang118 added the info:reviewed Pull Request changes follow basic guidelines label Jul 29, 2024
@FrankXie05 FrankXie05 assigned jimwang118 and unassigned jimwang118 Jul 30, 2024
@BillyONeal
Copy link
Member

It seems like the feature is broken; it needs to be 'internal dict' rather than 'external dict', since an external one is respected even if the internal one is available: https://support.dcmtk.org/docs/file_install.html

OFICONV DATA FILES
==================

When oficonv is used to implement character set conversion (which is the
default, starting with DCMTK 3.6.8), then a set of binary data files containing
mapping tables are used during the conversion process.  By default, these are
installed and expected in DCMTK's data path ("/usr/local/share/dcmtk-<VERSION>/
data") in the subdirectories "esdb" and "csmapper".  The data path can be
overridden at runtime by setting the environment variable "DCMICONVPATH" to
point to a different directory.

It is possible to embed the mapping tables into the oficonv library, in which
case no external files are needed at runtime.  This can be enabled by setting
the CMake variable "DCMTK_ENABLE_BUILTIN_OFICONV_DATA" to "ON".  This behavior
is enabled by default when DCMTK is compiled into shared libraries (option
"BUILD_SHARED_LIBS" set to "ON"), and disabled by default otherwise.  Note that
when using static libraries, the built-in mapping tables will increase the size
of each executable by ca. 4 MBytes.

The "DCMICONVPATH" environment variable is respected even when built-in mapping
tables are available.  In this case, the files referred to by "DCMICONVPATH"
override the built-in files, unless "DCMICONVPATH" points to DCMTK's default
data path.

That said, the feature isn't being added by this change, so I'm going to take this as is. Would really appreciate another change which flips the sense though.

Thanks!

@BillyONeal BillyONeal merged commit 9757cf5 into microsoft:master Jul 31, 2024
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-feature The issue is with a library, which is requesting new capabilities that didn’t exist info:reviewed Pull Request changes follow basic guidelines
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants