Skip to content

forms-setup: fix five fresh-install bugs and document the FMW install/relink recipe - #9

Open
bennciz wants to merge 1 commit into
mainfrom
fix/forms-setup-fresh-install
Open

forms-setup: fix five fresh-install bugs and document the FMW install/relink recipe#9
bennciz wants to merge 1 commit into
mainfrom
fix/forms-setup-fresh-install

Conversation

@bennciz

@bennciz bennciz commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Found by a clean-consumer test: clone this repo onto a stock Amazon Linux 2023 box with
nothing pre-installed and follow README + docs/FORMS_BEFORE_ENV.md alone. The script could
not complete as shipped. Every fix below was validated by an unattended one-shot
forms-setup.sh all on a virgin domain (RC=0, servlet healthy).

Script fixes (scripts/forms-setup.sh):

  • phase_rcu: drop -component WLS_RUNTIME — not an RCU component (RCU-6065); the WLS
    component creates the <prefix>_WLS_RUNTIME schema itself
  • phase_compile: put $MW_HOME/lib on LD_LIBRARY_PATH (frmcmp_batch dies on libig.so.0)
  • servlet config: the servlet reads config/fmwconfig/servers/WLS_FORMS/applications/ formsapp_12.2.1/config, not the FORMS component copy — and that directory is materialized
    by the domain's FIRST boot. New patch_servlet_config() runs from phase_config and again
    from phase_start post-boot (config is read per-session, so no restart is needed)
  • phase_domain: write $DOMAIN_HOME/bin/setUserOverrides.sh so formsapp's lifecycle
    listener can load Forms native libraries (otherwise BEA-149231 / UnsatisfiedLinkError on
    first boot and the servlet 404s)
  • phase_start: fail loudly — Forms error pages return HTTP 200, so the final check now
    requires HTTP 200 AND no FRM- in the body
  • new relink phase: a fresh 12.2.1.4 install ships a frmweb referencing shared libraries
    that exist nowhere on disk; relink once via ins_forms.mk, restore libclntshcore from
    .patch_storage, link Motif/libXp via the new MOTIF_LIB_DIR variable, and finish with a
    spawn-environment simulation

Docs (docs/FORMS_BEFORE_ENV.md):

  • FMW silent-install recipe (response files, -ignoreSysPrereqs rationale, Disk2 zip layout)
  • host package prerequisites (including docker group membership and Motif sourcing on AL2023)
  • eight new gotcha-table rows, including: never register $MW_HOME/lib in ld.so.conf —
    Oracle's bundled libexpat shadows the system one and breaks python/pyexpat consumers
    (e.g. the AWS CLI)

…/relink recipe

Found by a clean-consumer test: clone the public repo onto a stock AL2023
box with nothing pre-installed and follow the docs alone. The script could
not complete as shipped; each fix below was validated by a green-field
one-shot 'all' run on a virgin domain after the changes.

- phase_rcu: drop -component WLS_RUNTIME (RCU-6065 — not an RCU component;
  the WLS component creates the <prefix>_WLS_RUNTIME schema itself)
- phase_compile: put $MW_HOME/lib on LD_LIBRARY_PATH (frmcmp_batch dies on
  libig.so.0 without it)
- servlet config: the servlet reads config/fmwconfig/servers/WLS_FORMS/
  applications/formsapp_12.2.1/config, not the FORMS component copy, and
  that directory is materialized by the domain's FIRST boot — new
  patch_servlet_config() runs from phase_config and again from phase_start
  post-boot (per-session reads, no restart needed)
- phase_domain: write $DOMAIN_HOME/bin/setUserOverrides.sh so formsapp's
  lifecycle listener can load Forms native libraries (BEA-149231 /
  UnsatisfiedLinkError libopmnperf.so on first boot otherwise)
- phase_start: fail loudly — Forms error pages return HTTP 200, so the
  final check now requires 200 AND no FRM- in the body
- new relink phase: a fresh 12.2.1.4 install ships a frmweb referencing
  shared libraries that exist nowhere; relink once via ins_forms.mk,
  restore libclntshcore from .patch_storage, link Motif/libXp via
  MOTIF_LIB_DIR, and end with a spawn-environment simulation
- docs: silent-install recipe (response files, -ignoreSysPrereqs), host
  package list, MOTIF_LIB_DIR, and eight new gotcha rows (including: never
  put $MW_HOME/lib in ld.so.conf — Oracle's libexpat shadows the system
  one and breaks python/pyexpat consumers such as the AWS CLI)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants