mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-19 18:20:07 +02:00
x86_64 is used as a baseline: the "x86_64" entry, whatever status it has, is transformed into "all", and then the other entries in ARCHITECTURES either dropped or rearranged appropriately.
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
|
|
}
|