unixodbc: refactor and rename from unixODBC

rename to lowercase to fit package naming conventions
This commit is contained in:
quantenzitrone
2026-02-12 04:59:36 +01:00
parent 0287181a09
commit 2226596501
40 changed files with 107 additions and 105 deletions
+2 -2
View File
@@ -1,5 +1,5 @@
{ config, lib, ... }:
# unixODBC drivers (this solution is not perfect.. Because the user has to
# unixodbc drivers (this solution is not perfect.. Because the user has to
# ask the admin to add a driver.. but it's simple and works
let
@@ -21,7 +21,7 @@ in
description = ''
Specifies Unix ODBC drivers to be registered in
{file}`/etc/odbcinst.ini`. You may also want to
add `pkgs.unixODBC` to the system path to get
add `pkgs.unixodbc` to the system path to get
a command line client to connect to ODBC databases.
'';
};
+1 -1
View File
@@ -174,7 +174,7 @@ stdenv.mkDerivation (
++ lib.optional cupsSupport pkgs.cups
++ lib.optional dbusSupport pkgs.dbus
++ lib.optional cairoSupport pkgs.cairo
++ lib.optional odbcSupport pkgs.unixODBC
++ lib.optional odbcSupport pkgs.unixodbc
++ lib.optional netapiSupport pkgs.samba4
++ lib.optional cursesSupport pkgs.ncurses
++ lib.optional vaSupport pkgs.libva
@@ -77,7 +77,7 @@
clucene-core_2,
libcdr,
lcms2,
unixODBC,
unixodbc,
sane-backends,
mythes,
libexttextcat,
@@ -491,7 +491,7 @@ stdenv.mkDerivation (finalAttrs: {
libpq
python3
sane-backends
unixODBC
unixodbc
util-linux
which
xmlsec
@@ -13,7 +13,7 @@
libsecret,
openjdk,
sqlite,
unixODBC,
unixodbc,
gtk2,
libxtst,
glibcLocales,
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
gsettings-desktop-schemas
gtk2
sqlite
unixODBC
unixodbc
libxtst
glibcLocales
];
@@ -14,7 +14,7 @@
ncurses,
opencv4,
openssl,
unixODBC,
unixodbc,
xkeyboard_config,
libxtst,
libxrender,
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
opencv4
openssl
(lib.getLib stdenv.cc.cc)
unixODBC
unixodbc
xkeyboard_config
libxml2
libuuid
+2 -2
View File
@@ -6,7 +6,7 @@
sqlite,
libmysqlclient,
libpq,
unixODBC,
unixodbc,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
sqlite
libmysqlclient
libpq
unixODBC
unixodbc
];
cmakeFlags = [ "--no-warn-unused-cli" ];
+2 -2
View File
@@ -7,7 +7,7 @@
openssl,
openjdk11,
python3,
unixODBC,
unixodbc,
withJdbc ? false,
withOdbc ? false,
versionCheckHook,
@@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
openssl
]
++ lib.optionals withJdbc [ openjdk11 ]
++ lib.optionals withOdbc [ unixODBC ];
++ lib.optionals withOdbc [ unixodbc ];
cmakeFlags = [
(lib.cmakeFeature "DUCKDB_EXTENSION_CONFIGS" "${finalAttrs.src}/.github/config/in_tree_extensions.cmake")
+2 -2
View File
@@ -22,7 +22,7 @@
nss,
htmlRendererSupport ? false,
unixODBC,
unixodbc,
sqaplSupport ? false,
zeroFootprintRideSupport ? false,
@@ -119,7 +119,7 @@ stdenv.mkDerivation (finalAttrs: {
libgbm
nss
]
++ lib.optional sqaplSupport unixODBC;
++ lib.optional sqaplSupport unixodbc;
# See which files are not really important: `https://github.com/Dyalog/DyalogDocker/blob/master/rmfiles.sh`
installPhase = ''
+3 -3
View File
@@ -6,10 +6,10 @@
pkg-config,
openssl,
odbcSupport ? true,
unixODBC ? null,
unixodbc ? null,
}:
assert odbcSupport -> unixODBC != null;
assert odbcSupport -> unixodbc != null;
# Work is in progress to move to cmake so revisit that later
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
openssl
]
++ lib.optional odbcSupport unixODBC;
++ lib.optional odbcSupport unixodbc;
nativeBuildInputs = [
autoreconfHook
+2 -2
View File
@@ -8,7 +8,7 @@
flex,
libarchive,
pam,
unixODBC,
unixodbc,
jsoncons,
curl,
systemdLibs,
@@ -41,7 +41,7 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: {
buildInputs = [
libarchive
pam
unixODBC
unixodbc
jsoncons
curl
systemdLibs
+2 -2
View File
@@ -20,7 +20,7 @@
graphviz,
libpthread-stubs,
libxdmcp,
unixODBC,
unixodbc,
libgit2,
libsecret,
libgcrypt,
@@ -171,7 +171,7 @@ stdenv.mkDerivation (finalAttrs: {
boost
swig
python
unixODBC
unixodbc
libdeflate
opencascade-occt
protobuf_29
+1 -1
View File
@@ -274,7 +274,7 @@ buildFHSEnv {
lcms2
mpg123
cairo
unixODBC
unixodbc
samba4
sane-backends
openldap
+2 -2
View File
@@ -41,7 +41,7 @@
openssl,
pciutils,
tre,
unixODBC,
unixodbc,
libxcb-image,
libxcb-keysyms,
xkeyboard_config,
@@ -126,7 +126,7 @@ stdenv.mkDerivation {
openssl
pciutils
tre
unixODBC
unixodbc
libxcb-image
libxcb-keysyms
xkeyboard_config
+2 -2
View File
@@ -4,7 +4,7 @@
fetchFromGitHub,
catch2,
cmake,
unixODBC,
unixodbc,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [ cmake ];
buildInputs = [ unixODBC ];
buildInputs = [ unixodbc ];
cmakeFlags =
if (stdenv.hostPlatform.isStatic) then
@@ -9,10 +9,10 @@
libaio,
makeWrapper,
odbcSupport ? true,
unixODBC,
unixodbc,
}:
assert odbcSupport -> unixODBC != null;
assert odbcSupport -> unixodbc != null;
let
inherit (lib) optional optionals optionalString;
@@ -147,7 +147,7 @@ stdenv.mkDerivation {
(lib.getLib stdenv.cc.cc)
]
++ optional stdenv.hostPlatform.isLinux libaio
++ optional odbcSupport unixODBC;
++ optional odbcSupport unixodbc;
nativeBuildInputs = [
makeWrapper
+2 -2
View File
@@ -17,7 +17,7 @@
openldap,
geoip,
curl,
unixODBC,
unixodbc,
lmdb,
tinycdb,
}:
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
yaml-cpp
libsodium
curl
unixODBC
unixodbc
openssl
systemd
lmdb
+2 -2
View File
@@ -11,7 +11,7 @@
expat,
sqlite,
openssl,
unixODBC,
unixodbc,
libmysqlclient,
writableTmpDirAsHomeHook,
}:
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
];
buildInputs = [
unixODBC
unixodbc
libmysqlclient
];
+3 -3
View File
@@ -11,7 +11,7 @@
libiodbc,
withUnixODBC ? true,
unixODBC,
unixodbc,
}:
assert lib.xor withLibiodbc withUnixODBC;
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
openssl
]
++ lib.optional withLibiodbc libiodbc
++ lib.optional withUnixODBC unixODBC;
++ lib.optional withUnixODBC unixodbc;
nativeBuildInputs = [
autoreconfHook
@@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
"--with-libpq=${lib.getDev libpq}"
]
++ lib.optional withLibiodbc "--with-iodbc=${libiodbc}"
++ lib.optional withUnixODBC "--with-unixodbc=${unixODBC}";
++ lib.optional withUnixODBC "--with-unixodbc=${unixodbc}";
passthru = {
updateScript = nix-update-script {
@@ -84,7 +84,7 @@ buildFHSEnv rec {
# questa requirements
libxml2
ncurses5
unixODBC
unixodbc
libxft
# common requirements
freetype
+2 -2
View File
@@ -15,7 +15,7 @@
libpng,
makeFontsConf,
pango,
unixODBC,
unixodbc,
wrapGAppsHook3,
disableDocs ? false,
@@ -38,7 +38,7 @@ minimal.overrideAttrs (
};
buildInputs = prevAttrs.buildInputs ++ [
(if isDarwin then libiodbc else unixODBC)
(if isDarwin then libiodbc else unixodbc)
cairo
fontconfig.lib
glib
+2 -2
View File
@@ -36,7 +36,7 @@
netcdf,
poppler,
sqlite,
unixODBC,
unixodbc,
cudaSupport ? config.cudaSupport,
}:
@@ -97,7 +97,7 @@ stdenv.mkDerivation (finalAttrs: {
netcdf
poppler
sqlite
unixODBC
unixodbc
];
cmakeFlags = [
+2 -2
View File
@@ -4,7 +4,7 @@
fetchFromGitHub,
pkg-config,
sqlite,
unixODBC,
unixodbc,
zstd,
fetchurl,
}:
@@ -82,7 +82,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
buildInputs = [
sqlite
unixODBC
unixodbc
zstd
];
+2 -2
View File
@@ -22,7 +22,7 @@
jdk,
withOdbc ? true,
unixODBC,
unixodbc,
withPcre ? true,
pcre2,
@@ -97,7 +97,7 @@ let
[ ]
++ (lib.optional withDb db)
++ (lib.optional withJava jdk)
++ (lib.optional withOdbc unixODBC)
++ (lib.optional withOdbc unixodbc)
++ (lib.optional withPcre pcre2)
++ (lib.optional withPython python3)
++ (lib.optional withYaml libyaml)
@@ -4,14 +4,15 @@
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "unixODBC";
stdenv.mkDerivation (finalAttrs: {
pname = "unixobcd";
version = "2.3.12";
# TODO: build from source https://github.com/lurcher/unixODBC
src = fetchurl {
urls = [
"ftp://ftp.unixodbc.org/pub/unixODBC/${pname}-${version}.tar.gz"
"https://www.unixodbc.org/${pname}-${version}.tar.gz"
"ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-${finalAttrs.version}.tar.gz"
"https://www.unixodbc.org/unixODBC-${finalAttrs.version}.tar.gz"
];
sha256 = "sha256-8hBQFEXOIb9ge6Ue+MEl4Q4i3/3/7Dd2RkYt9fAZFew=";
};
@@ -27,4 +28,4 @@ stdenv.mkDerivation rec {
license = lib.licenses.lgpl2;
platforms = lib.platforms.unix;
};
}
})
+2 -2
View File
@@ -2,7 +2,7 @@
lib,
fetchFromGitHub,
buildGoModule,
unixODBC,
unixodbc,
icu,
nix-update-script,
testers,
@@ -21,7 +21,7 @@ buildGoModule (finalAttrs: {
};
buildInputs = [
unixODBC
unixodbc
icu
];
+2 -2
View File
@@ -19,7 +19,7 @@
gtk3,
libgbm,
libusb1,
unixODBC,
unixodbc,
libmysqlclient,
libsForQt5,
libxv,
@@ -145,7 +145,7 @@ else
gtk3
libgbm
libusb1
unixODBC
unixodbc
libsForQt5.qtbase
libxdamage
libxtst
+12 -12
View File
@@ -17685,7 +17685,7 @@ self: {
HDBC,
mtl,
time,
unixODBC,
unixodbc,
utf8-string,
}:
mkDerivation {
@@ -17703,11 +17703,11 @@ self: {
time
utf8-string
];
librarySystemDepends = [ unixODBC ];
librarySystemDepends = [ unixodbc ];
description = "ODBC driver for HDBC";
license = lib.licenses.bsd3;
}
) { inherit (pkgs) unixODBC; };
) { inherit (pkgs) unixodbc; };
HDBC-postgresql = callPackage (
{
@@ -362150,7 +362150,7 @@ self: {
base,
hsql,
old-time,
unixODBC,
unixodbc,
}:
mkDerivation {
pname = "hsql-odbc";
@@ -362161,12 +362161,12 @@ self: {
hsql
old-time
];
librarySystemDepends = [ unixODBC ];
librarySystemDepends = [ unixodbc ];
description = "A Haskell Interface to ODBC";
license = lib.licenses.bsd3;
hydraPlatforms = lib.platforms.none;
}
) { inherit (pkgs) unixODBC; };
) { inherit (pkgs) unixodbc; };
hsql-postgresql = callPackage (
{
@@ -495147,7 +495147,7 @@ self: {
text,
time,
transformers,
unixODBC,
unixodbc,
unliftio-core,
weigh,
}:
@@ -495174,7 +495174,7 @@ self: {
transformers
unliftio-core
];
librarySystemDepends = [ unixODBC ];
librarySystemDepends = [ unixodbc ];
executableHaskellDepends = [
base
bytestring
@@ -495201,7 +495201,7 @@ self: {
license = lib.licenses.bsd3;
mainProgram = "odbc";
}
) { inherit (pkgs) unixODBC; };
) { inherit (pkgs) unixodbc; };
odd-jobs = callPackage (
{
@@ -640694,7 +640694,7 @@ self: {
logging,
text,
transformers,
unixODBC,
unixodbc,
}:
mkDerivation {
pname = "sqlcli";
@@ -640706,13 +640706,13 @@ self: {
text
transformers
];
librarySystemDepends = [ unixODBC ];
librarySystemDepends = [ unixodbc ];
description = "Bindings for SQL/CLI (ODBC) C API";
license = lib.licenses.bsd3;
hydraPlatforms = lib.platforms.none;
broken = true;
}
) { inherit (pkgs) unixODBC; };
) { inherit (pkgs) unixodbc; };
sqlcli-odbc = callPackage (
{
@@ -38,7 +38,7 @@
runtimeShell,
stdenv,
systemd,
unixODBC,
unixodbc,
wrapGAppsHook3,
wxGTK32,
libx11,
@@ -107,7 +107,7 @@ stdenv.mkDerivation {
zlib
]
++ optionals wxSupport wxPackages2
++ optionals odbcSupport [ unixODBC ]
++ optionals odbcSupport [ unixodbc ]
++ optionals javacSupport [ openjdk11 ]
++ optionals enableSystemd [ systemd ];
@@ -130,7 +130,7 @@ stdenv.mkDerivation {
++ optional enableKernelPoll "--enable-kernel-poll"
++ optional enableHipe "--enable-hipe"
++ optional javacSupport "--with-javac"
++ optional odbcSupport "--with-odbc=${unixODBC}"
++ optional odbcSupport "--with-odbc=${unixodbc}"
++ optional wxSupport "--enable-wx"
++ optional enableSystemd "--enable-systemd"
++ optional stdenv.hostPlatform.isDarwin "--enable-darwin-64bit"
@@ -65,7 +65,7 @@
libxcb-wm,
zlib,
at-spi2-core,
unixODBC,
unixodbc,
unixODBCDrivers,
libGL,
# darwin
@@ -127,8 +127,8 @@ stdenv.mkDerivation {
libproxy
dbus
glib
# unixODBC drivers
unixODBC
# unixodbc drivers
unixodbc
unixODBCDrivers.psql
unixODBCDrivers.sqlite
unixODBCDrivers.mariadb
@@ -3,7 +3,7 @@
fetchpatch,
fetchurl,
stdenv,
unixODBC,
unixodbc,
cmake,
mariadb,
sqlite,
@@ -73,7 +73,7 @@
nativeBuildInputs = [ cmake ];
buildInputs = [
unixODBC
unixodbc
openssl
libiconv
zlib
@@ -82,10 +82,10 @@
cmakeFlags = [
"-DWITH_EXTERNAL_ZLIB=ON"
"-DODBC_LIB_DIR=${lib.getLib unixODBC}/lib"
"-DODBC_INCLUDE_DIR=${lib.getDev unixODBC}/include"
"-DODBC_LIB_DIR=${lib.getLib unixodbc}/lib"
"-DODBC_INCLUDE_DIR=${lib.getDev unixodbc}/include"
"-DWITH_OPENSSL=ON"
# on darwin this defaults to ON but we want to build against unixODBC
# on darwin this defaults to ON but we want to build against unixodbc
"-DWITH_IODBC=OFF"
];
@@ -130,14 +130,14 @@
];
buildInputs = [
unixODBC
unixodbc
sqlite
zlib
libxml2
];
configureFlags = [
"--with-odbc=${unixODBC}"
"--with-odbc=${unixodbc}"
"--with-sqlite3=${sqlite.dev}"
];
@@ -195,7 +195,7 @@
postFixup = ''
patchelf --set-rpath ${
lib.makeLibraryPath [
unixODBC
unixodbc
openssl
libkrb5
libuuid
@@ -283,14 +283,14 @@
fixupPhase = lib.optionalString stdenv.hostPlatform.isDarwin ''
${stdenv.cc.bintools.targetPrefix}install_name_tool \
-change /usr/lib/libiconv.2.dylib ${libiconv}/lib/libiconv.2.dylib \
-change /opt/homebrew/lib/libodbcinst.2.dylib ${unixODBC}/lib/libodbcinst.2.dylib \
-change /opt/homebrew/lib/libodbcinst.2.dylib ${unixodbc}/lib/libodbcinst.2.dylib \
$out/${finalAttrs.passthru.driver}
'';
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
patchelf --set-rpath ${
lib.makeLibraryPath [
unixODBC
unixodbc
openssl
libkrb5
libuuid
@@ -337,18 +337,18 @@
cd src
'';
# `unixODBC` is loaded with `dlopen`, so `autoPatchElfHook` cannot see it, and `patchELF` phase would strip the manual patchelf. Thus:
# `unixodbc` is loaded with `dlopen`, so `autoPatchElfHook` cannot see it, and `patchELF` phase would strip the manual patchelf. Thus:
# - Manually patchelf with `unixODCB` libraries
# - Disable automatic `patchELF` phase
installPhase = ''
mkdir -p $out/lib
cp opt/amazon/redshiftodbc/lib/64/* $out/lib
patchelf --set-rpath ${unixODBC}/lib/ $out/lib/libamazonredshiftodbc64.so
patchelf --set-rpath ${unixodbc}/lib/ $out/lib/libamazonredshiftodbc64.so
'';
dontPatchELF = true;
buildInputs = [ unixODBC ];
buildInputs = [ unixodbc ];
# see the top of the file for an explanation
passthru = {
+2 -2
View File
@@ -50,7 +50,7 @@
imath,
openvdb,
c-blosc,
unixODBC,
unixodbc,
libpq,
libmysqlclient,
ffmpeg,
@@ -142,7 +142,7 @@ stdenv.mkDerivation (finalAttrs: {
alembic
imath
c-blosc
unixODBC
unixodbc
libpq
libmysqlclient
ffmpeg
@@ -3,7 +3,7 @@
buildPecl,
lib,
libiconv,
unixODBC,
unixodbc,
php,
}:
@@ -15,7 +15,7 @@ buildPecl {
internalDeps = [ php.extensions.pdo ];
buildInputs = [ unixODBC ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ];
buildInputs = [ unixodbc ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ];
meta = {
description = "Microsoft Drivers for PHP for SQL Server";
@@ -2,7 +2,7 @@
stdenv,
buildPecl,
lib,
unixODBC,
unixodbc,
libiconv,
}:
@@ -12,7 +12,7 @@ buildPecl {
version = "5.12.0";
sha256 = "sha256-qeu4gLKlWNPWaE9uaALFPFv/pJ4e5g0Uc6cST8nLcq0=";
buildInputs = [ unixODBC ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ];
buildInputs = [ unixodbc ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ];
meta = {
description = "Microsoft Drivers for PHP for SQL Server";
@@ -3,7 +3,7 @@
buildPythonPackage,
fetchPypi,
isPyPy,
unixODBC,
unixodbc,
}:
buildPythonPackage rec {
@@ -19,10 +19,10 @@ buildPythonPackage rec {
};
nativeBuildInputs = [
unixODBC # for odbc_config
unixodbc # for odbc_config
];
buildInputs = [ unixODBC ];
buildInputs = [ unixodbc ];
# Tests require a database server
doCheck = false;
+1 -1
View File
@@ -695,7 +695,7 @@ let
pkg-config
];
n1qn1 = [ pkgs.gfortran ];
odbc = [ pkgs.unixODBC ];
odbc = [ pkgs.unixodbc ];
opencv = [ pkgs.pkg-config ];
pak = [ pkgs.curl.dev ];
pander = with pkgs; [
+2 -2
View File
@@ -12,7 +12,7 @@
zlib,
buildPackages,
odbcSupport ? true,
unixODBC,
unixodbc,
snmpSupport ? stdenv.buildPlatform == stdenv.hostPlatform,
net-snmp,
sshSupport ? true,
@@ -67,7 +67,7 @@ import ./versions.nix (
(if (lib.versions.major version >= "7" && lib.versions.minor version >= "4") then pcre2 else pcre)
zlib
]
++ optional odbcSupport unixODBC
++ optional odbcSupport unixodbc
++ optional snmpSupport net-snmp
++ optional sqliteSupport sqlite
++ optional sshSupport libssh2
+2 -2
View File
@@ -17,7 +17,7 @@
ldapSupport ? true,
openldap,
odbcSupport ? true,
unixODBC,
unixodbc,
snmpSupport ? true,
net-snmp,
sshSupport ? true,
@@ -64,7 +64,7 @@ import ./versions.nix (
(if lib.versionAtLeast version "7.4" then pcre2 else pcre)
zlib
]
++ optional odbcSupport unixODBC
++ optional odbcSupport unixodbc
++ optional jabberSupport iksemel
++ optional ldapSupport openldap
++ optional snmpSupport net-snmp
+1
View File
@@ -1962,6 +1962,7 @@ mapAliases {
ue4demos = throw "'ue4demos' has been removed because it is unmaintained"; # Added 2026-02-07
unicap = throw "'unicap' has been removed because it is unmaintained"; # Added 2025-05-17
unifi-poller = throw "'unifi-poller' has been renamed to/replaced by 'unpoller'"; # Converted to throw 2025-10-27
unixODBC = warnAlias "'unixODBC' has been renamed to 'unixodbc'" unixodbc; # Added 2026-02-12
unzoo = throw "'unzoo' has been removed since it is unmaintained upstream and doesn't compile with newer versions of GCC anymore"; # Removed 2025-05-24
usync = throw "'usync' has been removed as it is unused and unmaintained upstream"; # Added 2025-12-18
util-linuxCurses = throw "'util-linuxCurses' has been renamed to/replaced by 'util-linux'"; # Converted to throw 2025-10-27
+3 -3
View File
@@ -39,7 +39,7 @@
readline,
rsync,
sqlite,
unixODBC,
unixodbc,
uwimap,
valgrind,
zlib,
@@ -609,8 +609,8 @@ lib.makeScope pkgs.newScope (
{
name = "pdo_odbc";
internalDeps = [ php.extensions.pdo ];
buildInputs = [ unixODBC ];
configureFlags = [ "--with-pdo-odbc=unixODBC,${unixODBC}" ];
buildInputs = [ unixodbc ];
configureFlags = [ "--with-pdo-odbc=unixODBC,${unixodbc}" ];
doCheck = false;
}
{
@@ -673,7 +673,7 @@
},
"odbc": {
"attrPath": [
"unixODBC"
"unixodbc"
]
},
"ompi": {
@@ -901,4 +901,4 @@
]
}
}
}
}