[MacPorts] #73854: oracle-instantclient: automatic download of distfiles no longer possible ; outdated versions ; updated archs

MacPorts noreply at macports.org
Tue May 5 00:24:14 UTC 2026


#73854: oracle-instantclient: automatic download of distfiles no longer possible ;
outdated versions ; updated archs
----------------------------------------------+------------------------
  Reporter:  BjarneDMat                       |      Owner:  BjarneDMat
      Type:  defect                           |     Status:  assigned
  Priority:  Normal                           |  Milestone:
 Component:  ports                            |    Version:
Resolution:                                   |   Keywords:
      Port:  oracle-instantclient php-oracle  |
----------------------------------------------+------------------------

Comment (by ryandesign):

 I am not working on this, but just to answer a few questions that have
 piled up:

 Replying to [comment:2 jmroot]:
 > It is unfortunate that this causes builds to fail every time the php
 Portfile is updated. I wonder if it makes sense to move php*-oracle ports
 to a separate Portfile, or if there's some other way to avoid the repeated
 mirroring and build failures.

 Since we don't have a distfiles-private server or mirroring mechanism set
 up, I avoided build failures before by manually downloading the oracle-
 instantclient files on my machine, manually copying them to each buildbot
 worker's distfiles directory, setting their modification date in the
 future so they wouldn't be auto-deleted, then scheduling the oracle-
 instantclient builds. This would produce binaries on the packages-private
 server that the buildbot could use to subsequently build the php*-oracle
 subports.

 I've taken care to do this for each new Intel buildbot worker as I set it
 up. There are binaries of oracle-instantclient on packages-private for all
 Intel macOS versions ([ticket:73230 except Tahoe] and Leopard) so there
 should be no build failures of php*-oracle on Intel buildbot machines that
 are caused by missing oracle-instantclient. This is confirmed by the
 [https://ports.macports.org/port/php83-oracle/details/ port health
 indicators].

 If there are failures of php*-oracle on Intel CI machines, that would
 happen if CI did not have access to the packages-private server, which has
 indeed been mostly or possibly completely broken for months because I
 haven't updated the list of allowed CI IP addresses on the packages-
 private server. The long-term plan is to move packages-private to our new
 carola server and to allow access by VPN rather than by IP whitelisting.

 On arm64, the oracle-instantclient port doesn't currently support arm64 so
 there is a build failure when php*-oracle can't install that dependency
 for arm64. The workaround for that would be to indicate the same
 `supported_archs` in the php*-oracle ports as is set in oracle-
 instantclient. This seems to be a general MacPorts limitation at this
 time: If a port restricts its `supported_archs`, all ports depending on it
 must be marked at least as restrictively.

 Replying to [comment:3 BjarneDMat]:
 > There'll be a separate `php-oracle` port in the near future - `php-
 oracle` has been evicted from `php` >= 8.4 . It had just simply eluded my
 attention, that that was the case - My Bad !
 > According to https://pecl.php.net/package/PDO_OCI it ought to be
 possible to remove `php-oracle` entirely from `lang/php/Portfile` if it's
 the consensus, that that's the desired way to go.

 Looks like for php < 8.3 the new php-oracle port would have to use version
 1.0 from 2005, and for php ≥ 8.3 it can use the latest version. To
 decrease the version like this, the `epoch` in the new php-oracle port
 will need to be increased to `3` to be greater than its current value of
 `2` from the php portfile.

 Before moving this module to a new php-oracle port, compare the source
 code of the module from the 1.0 distribution with the ones included in the
 latest php source distriburtion to make sure there aren't any post-1.0
 improvements in the php source distribution that we would be reverting by
 going back to the 1.0 version.

 Instead of having the new php-oracle use 1.0 for php < 8.3, it could have
 separate cases for each version and continue to use the php source
 distribution for those older php versions.

 Replying to [comment:9 BjarneDMat]:
 > So ...
 > 1. it's missing the start `cd`
 > 2. the `dmg` isn't in the correct place after `hdiutil attach`

 My advice to use `use_dmg yes` assumed the port was using a standard
 extract phase. I did not remember that this port overrides the extract
 phase, and since the port did not use dmg distfiles I did not write that
 override to accommodate them; `use_dmg yes` evidently messes it up. I
 haven't gone back to try to re-learn why I did that but I'm sure I had a
 good reason at the time. If the reason no longer applies, you can remove
 the extract phase override. Otherwise, you would enhance the extract phase
 override to handle dmg files.

-- 
Ticket URL: <https://trac.macports.org/ticket/73854#comment:14>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list