anchor.diff:      x86_64-darwin = "macos.x64";
     }.${stdenv.hostPlatform.system} or throwSystem;
   
  +  shortArch = {
  +    x86_64-linux = "linux";
  +    x86_64-darwin = "macos";
  +  }.${stdenv.hostPlatform.system} or throwSystem;
  +
     # calculate the filename of a single zip file
     srcFilename = component: arch: version: rel:
       "instantclient-${component}-${arch}-${version}" +
       (optionalString (rel != "") "-${rel}") +
  -    (optionalString (arch == "linux.x64") "dbru") + # ¯\_(ツ)_/¯
  +    (optionalString (arch == "linux.x64" || arch == "macos.x64") "dbru") + # ¯\_(ツ)_/¯
       ".zip";
   
  -  # fetcher for the clickthrough artifacts (requiring manual download)
  -  fetchClickThrough =  srcFilename: hash: (requireFile {
  -    name = srcFilename;
  -    url = "https://www.oracle.com/database/technologies/instant-client/downloads.html";
  -    sha256 = hash;
  -  });
  -
     # fetcher for the non clickthrough artifacts
  -  fetchSimple = srcFilename: hash: fetchurl {
  -    url = "https://download.oracle.com/otn_software/linux/instantclient/193000/${srcFilename}";
  +  fetcher = srcFilename: hash: fetchurl {
  +    url = "https://download.oracle.com/otn_software/${shortArch}/instantclient/193000/${srcFilename}";
       sha256 = hash;
     };
  -
  -  # pick the appropriate fetcher depending on the platform
  -  fetcher = if stdenv.hostPlatform.system == "x86_64-linux" then fetchSimple else fetchClickThrough;
   
     # assemble srcs
     srcs = map (component:
  
positive.code:   # determine the version number, there might be different ones per architecture
    version = {
      x86_64-linux = "19.3.0.0.0";
      x86_64-darwin = "18.1.0.0.0";
    }.${stdenv.hostPlatform.system} or throwSystem;
  
    # hashes per component and architecture
  
negative.code: { stdenv
  , fetchurl
  , autoPatchelfHook
  , fixDarwinDylibNames
  , unzip
  