@@ -136,56 +136,9 @@ POLICYJSON
136136 # Add ODBC dependencies to library path (after poco_env.bash which sets LD_LIBRARY_PATH)
137137 export LD_LIBRARY_PATH="$INFORMIX_CLIENT_DIR/lib:$INFORMIX_CLIENT_DIR/lib/esql:$INFORMIX_CLIENT_DIR/lib/cli:${ pkgs . openssl . out } /lib:${ pkgs . stdenv . cc . cc . lib } /lib:${ pkgs . unixODBC } /lib'' ${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
138138
139- # Extract Informix ODBC driver from the container if not already done.
140- # The Informix container ships the Client SDK (CSDK) which includes the ODBC driver.
141- extract_informix_client() {
142- if [ -d "$INFORMIX_CLIENT_DIR/lib" ]; then
143- echo "Informix client libraries already extracted."
144- return 0
145- fi
146-
147- echo "Extracting Informix ODBC driver from container image..."
148- mkdir -p "$INFORMIX_CLIENT_DIR/lib/esql" "$INFORMIX_CLIENT_DIR/lib/cli"
149-
150- # We need a temporary container to copy files from
151- local tmp_container="poco-informix-extract-$$"
152- podman create --name "$tmp_container" --platform=linux/amd64 \
153- icr.io/informix/informix-developer-database:latest /bin/true 2>/dev/null
154-
155- # Copy the ODBC/ESQL client libraries
156- # The CSDK libs live under /opt/ibm/informix/lib in the container
157- podman cp "$tmp_container:/opt/ibm/informix/lib/cli" "$INFORMIX_CLIENT_DIR/lib/" 2>/dev/null || true
158- podman cp "$tmp_container:/opt/ibm/informix/lib/esql" "$INFORMIX_CLIENT_DIR/lib/" 2>/dev/null || true
159-
160- # Copy key shared libraries
161- for lib in libifcli.so libifasf.so libifdmr.so libifgls.so libifglx.so libifos.so libifgen.so libifixl.so; do
162- podman cp "$tmp_container:/opt/ibm/informix/lib/$lib" "$INFORMIX_CLIENT_DIR/lib/" 2>/dev/null || true
163- done
164-
165- # Also copy any versioned .so files
166- for lib in $(podman exec "$tmp_container" sh -c 'ls /opt/ibm/informix/lib/libif*.so* /opt/ibm/informix/lib/cli/libif*.so* 2>/dev/null' 2>/dev/null); do
167- local basename=$(basename "$lib")
168- local dirname=$(dirname "$lib" | sed 's|/opt/ibm/informix/||')
169- podman cp "$tmp_container:$lib" "$INFORMIX_CLIENT_DIR/$dirname/" 2>/dev/null || true
170- done
171-
172- podman rm "$tmp_container" > /dev/null 2>&1 || true
173-
174- # Check that the ODBC driver was extracted
175- if ls "$INFORMIX_CLIENT_DIR"/lib/cli/libifcli.so* > /dev/null 2>&1; then
176- echo "Informix ODBC driver extracted successfully."
177- elif ls "$INFORMIX_CLIENT_DIR"/lib/libifcli.so* > /dev/null 2>&1; then
178- echo "Informix ODBC driver extracted successfully."
179- else
180- echo "WARNING: Could not find libifcli.so in extracted files."
181- echo "Contents of $INFORMIX_CLIENT_DIR/lib:"
182- ls -laR "$INFORMIX_CLIENT_DIR/lib/" 2>/dev/null || echo "(empty)"
183- fi
184- }
185-
186- extract_informix_client
187-
188- # Find the ODBC driver library
139+ # Find the ODBC driver library.
140+ # The CSDK (Client SDK) must be installed separately — it is NOT included
141+ # in the Informix Developer Edition container image.
189142 ODBC_DRIVER_LIB=""
190143 for candidate in \
191144 "$INFORMIX_CLIENT_DIR/lib/cli/libifcli.so" \
@@ -199,7 +152,8 @@ POLICYJSON
199152
200153 if [ -z "$ODBC_DRIVER_LIB" ]; then
201154 echo "WARNING: Informix ODBC driver library (libifcli.so) not found."
202- echo "ODBC configuration may be invalid."
155+ echo "Install the IBM Informix Client SDK (CSDK) into $INFORMIX_CLIENT_DIR"
156+ echo "See: https://www.ibm.com/support/pages/download-informix-products"
203157 ODBC_DRIVER_LIB="$INFORMIX_CLIENT_DIR/lib/cli/libifcli.so"
204158 else
205159 echo "Using ODBC driver library: $ODBC_DRIVER_LIB"
265219 -e "LICENSE=accept" \
266220 -e "INFORMIX_PASSWORD=$INFORMIX_PASSWORD" \
267221 -p "$INFORMIX_PORT:9088" \
268- --privileged \
222+ --privileged \ # Required: Informix needs shared memory (IPC) setup
269223 "$INFORMIX_IMAGE"; then
270224 echo "ERROR: Failed to create Informix container"
271225 echo "Container logs:"
0 commit comments