214 lines
6.3 KiB
Bash
214 lines
6.3 KiB
Bash
SUMMARY="The GNU iconv implementation to convert text encodings"
|
|
DESCRIPTION="For historical reasons, international text is often encoded using \
|
|
a language or country dependent character encoding. With the advent of the \
|
|
internet and the frequent exchange of text across countries - even the \
|
|
viewing of a web page from a foreign country is a \"text exchange\" in \
|
|
this context -, conversions between these encodings have become important. \
|
|
They have also become a problem, because many characters which are present \
|
|
in one encoding are absent in many other encodings. To solve this mess, the \
|
|
Unicode encoding has been created. It is a super-encoding of all others and \
|
|
is therefore the default encoding for new text formats like XML.
|
|
|
|
Still, many computers still operate in locale with a traditional (limited) \
|
|
character encoding. Some programs, like mailers and web browsers, must be able \
|
|
to convert between a given text encoding and the user's encoding. Other \
|
|
programs internally store strings in Unicode, to facilitate internal \
|
|
processing, and need to convert between internal string representation \
|
|
(Unicode) and external string representation (a traditional encoding) when \
|
|
they are doing I/O. GNU libiconv is a conversion library for both kinds of \
|
|
applications.
|
|
|
|
This library provides an iconv() implementation, for use on systems which \
|
|
don't have one, or whose implementation cannot convert from/to Unicode.
|
|
It provides support for these encodings:
|
|
|
|
European languages
|
|
- ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U, KOI8-RU, \
|
|
CP{1250,1251,1252,1253,1254,1257}, CP{850,866,1131}, \
|
|
Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, \
|
|
Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh
|
|
Semitic languages
|
|
- ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic}
|
|
Japanese
|
|
- EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1
|
|
Chinese
|
|
- EUC-CN, HZ, GBK, CP936, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, \
|
|
BIG5-HKSCS:2004, BIG5-HKSCS:2001, BIG5-HKSCS:1999, ISO-2022-CN, ISO-2022-CN-EXT
|
|
Korean
|
|
- EUC-KR, CP949, ISO-2022-KR, JOHAB
|
|
Armenian
|
|
- ARMSCII-8
|
|
Georgian
|
|
- Georgian-Academy, Georgian-PS
|
|
Tajik
|
|
- KOI8-T
|
|
Kazakh
|
|
- PT154, RK1048
|
|
Thai
|
|
- ISO-8859-11, TIS-620, CP874, MacThai
|
|
Laotian
|
|
- MuleLao-1, CP1133
|
|
Vietnamese
|
|
- VISCII, TCVN, CP1258
|
|
Platform specifics
|
|
- HP-ROMAN8, NEXTSTEP
|
|
Full Unicode
|
|
- UTF-8
|
|
- UCS-2, UCS-2BE, UCS-2LE
|
|
- UCS-4, UCS-4BE, UCS-4LE
|
|
- UTF-16, UTF-16BE, UTF-16LE
|
|
- UTF-32, UTF-32BE, UTF-32LE
|
|
- UTF-7
|
|
- C99, JAVA
|
|
Full Unicode, in terms of uint16_t or uint32_t (with machine dependent \
|
|
endianness and alignment)
|
|
- UCS-2-INTERNAL, UCS-4-INTERNAL
|
|
Locale dependent, in terms of 'char' or 'wchar_t' (with machine dependent \
|
|
endianness and alignment, and with OS and locale dependent semantics)
|
|
- char, wchar_t
|
|
- The empty encoding name \"\" is equivalent to \"char\": it denotes the \
|
|
locale dependent character encoding.
|
|
|
|
When configured with the option --enable-extra-encodings, it also provides \
|
|
support for a few extra encodings:
|
|
European languages
|
|
- CP{437,737,775,852,853,855,857,858,860,861,863,865,869,1125}
|
|
Semitic languages
|
|
- CP864
|
|
Japanese
|
|
- EUC-JISX0213, Shift_JISX0213, ISO-2022-JP-3
|
|
Chinese
|
|
- BIG5-2003 (experimental)
|
|
Turkmen
|
|
- TDS565
|
|
Platform specifics
|
|
- ATARIST, RISCOS-LATIN1
|
|
|
|
It can convert from any of these encodings to any other, through Unicode \
|
|
conversion.
|
|
It has also some limited support for transliteration, i.e. when a character \
|
|
cannot be represented in the target character set, it can be approximated \
|
|
through one or several similarly looking characters. Transliteration is \
|
|
activated when \"//TRANSLIT\" is appended to the target encoding name.
|
|
|
|
libiconv is for you if your application needs to support multiple character \
|
|
encodings, but that support lacks from your system."
|
|
HOMEPAGE="https://www.gnu.org/software/libiconv/"
|
|
COPYRIGHT="2000-2019 Free Software Foundation, Inc."
|
|
LICENSE="GNU LGPL v2
|
|
GNU GPL v3"
|
|
REVISION="1"
|
|
SOURCE_URI="https://ftpmirror.gnu.org/libiconv/libiconv-$portVersion.tar.gz"
|
|
CHECKSUM_SHA256="e6a1b1b589654277ee790cce3734f07876ac4ccfaecbee8afa0b649cf529cc04"
|
|
|
|
ARCHITECTURES="all"
|
|
SECONDARY_ARCHITECTURES="x86"
|
|
|
|
libiconvVersion="2.6.1"
|
|
libcharsetVersion="1.0.0"
|
|
|
|
portVersionCompat="$portVersion compat >= 1.13"
|
|
libiconvVersionCompat="$libiconvVersion compat >= ${libiconvVersion%%.*}"
|
|
libcharsetVersionCompat="$libcharsetVersion compat >= ${libcharsetVersion%%.*}"
|
|
|
|
PROVIDES="
|
|
libiconv$secondaryArchSuffix = $portVersionCompat
|
|
lib:libiconv$secondaryArchSuffix = $libiconvVersionCompat
|
|
lib:libcharset$secondaryArchSuffix = $libcharsetVersionCompat
|
|
"
|
|
if [ -z "$secondaryArchSuffix" ]; then
|
|
PROVIDES="$PROVIDES
|
|
cmd:iconv = $libiconvVersionCompat
|
|
"
|
|
fi
|
|
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix
|
|
"
|
|
|
|
PROVIDES_devel="
|
|
libiconv${secondaryArchSuffix}_devel = $portVersionCompat
|
|
devel:libiconv${secondaryArchSuffix} = $libiconvVersionCompat
|
|
devel:libcharset${secondaryArchSuffix} = $libcharsetVersionCompat
|
|
"
|
|
REQUIRES_devel="
|
|
libiconv$secondaryArchSuffix == $portVersion base
|
|
"
|
|
|
|
BUILD_REQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:aclocal
|
|
cmd:autoconf
|
|
cmd:autoheader
|
|
cmd:awk
|
|
cmd:gcc$secondaryArchSuffix
|
|
cmd:ld$secondaryArchSuffix
|
|
cmd:libtoolize$secondaryArchSuffix
|
|
cmd:make
|
|
"
|
|
|
|
if [ -z "$secondaryArchSuffix" ]; then
|
|
defineDebugInfoPackage libiconv$secondaryArchSuffix \
|
|
$binDir/iconv \
|
|
$libDir/libiconv.so.$libiconvVersion \
|
|
$libDir/libcharset.so.$libcharsetVersion
|
|
else
|
|
defineDebugInfoPackage libiconv$secondaryArchSuffix \
|
|
$libDir/libiconv.so.$libiconvVersion \
|
|
$libDir/libcharset.so.$libcharsetVersion
|
|
fi
|
|
|
|
BUILD()
|
|
{
|
|
rm -rf aclocal.m4
|
|
echo "AC_CONFIG_MACRO_DIR([m4]) >> configure.ac"
|
|
libtoolize -fci
|
|
aclocal --install -I m4 -I srcm4
|
|
autoconf
|
|
autoheader
|
|
cd libcharset
|
|
echo "AC_CONFIG_MACRO_DIR([m4]) >> configure.ac"
|
|
libtoolize -fci
|
|
aclocal --install -I m4
|
|
autoconf
|
|
autoheader
|
|
cd ..
|
|
runConfigure ./configure \
|
|
--enable-relocatable \
|
|
--enable-shared \
|
|
--enable-static \
|
|
--disable-nls
|
|
make $jobArgs
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
ACLOCALDIR=$prefix/data/aclocal
|
|
mkdir -p ${ACLOCALDIR}
|
|
cp -f srcm4/iconv.m4 ${ACLOCALDIR}/iconv.m4
|
|
make install
|
|
|
|
rm $libDir/*.la
|
|
|
|
# remove command for secondary architecture
|
|
if [ -n "$secondaryArchSuffix" ]; then
|
|
rm -rf $binDir
|
|
fi
|
|
|
|
prepareInstalledDevelLibs libiconv libcharset
|
|
|
|
# devel package
|
|
packageEntries devel \
|
|
$developDir \
|
|
$manDir/man3 \
|
|
$dataDir \
|
|
$docDir/*.3.html
|
|
}
|
|
|
|
TEST()
|
|
{
|
|
make check
|
|
}
|