prisma / tiberius

TDS 7.2+ (Microsoft SQL Server) driver for Rust
Apache License 2.0
321 stars 118 forks source link

Build problems with Auth::Integrated #283

Open TheRustifyer opened 1 year ago

TheRustifyer commented 1 year ago

I am writting an ORM that depends on tiberius. Someone requested us to include the Integrated auth method for MSSQL databases, so we go ahead, and tried.

Everything works well in our local dev machines, but in our actions, for both Unix and Windows targets we are unable to build our library.

This is the specific error for Unix systems:

error: failed to run custom build command for `libgssapi-sys v0.2.4`

Caused by:
  process didn't exit successfully: `/home/runner/work/Canyon-SQL/Canyon-SQL/target/debug/build/libgssapi-sys-9275876cf6817fbf/build-script-build` (exit status: 101)
  --- stdout
  cargo:rustc-link-lib=gssapi_krb5

  --- stderr
  [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libgssapi-sys-0.2.4/build.rs:9] res = Ok(
      Output {
          status: ExitStatus(
              unix_wait_status(
                  0,
              ),
          ),
          stdout: "",
          stderr: "",
      },
  )
  [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libgssapi-sys-0.2.4/build.rs:9] res = Ok(
      Output {
          status: ExitStatus(
              unix_wait_status(
                  0,
              ),
          ),
          stdout: "",
          stderr: "",
      },
  )
  [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libgssapi-sys-0.2.4/build.rs:9] res = Ok(
      Output {
          status: ExitStatus(
              unix_wait_status(
                  0,
              ),
          ),
          stdout: "",
          stderr: "",
      },
  )
  [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libgssapi-sys-0.2.4/build.rs:9] res = Ok(
      Output {
          status: ExitStatus(
              unix_wait_status(
                  0,
              ),
          ),
          stdout: "",
          stderr: "",
      },
  )
  [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libgssapi-sys-0.2.4/build.rs:9] res = Ok(
      Output {
          status: ExitStatus(
              unix_wait_status(
                  0,
              ),
          ),
          stdout: "",
          stderr: "",
      },
  )
  [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libgssapi-sys-0.2.4/build.rs:9] res = Ok(
      Output {
          status: ExitStatus(
              unix_wait_status(
                  0,
              ),
          ),
          stdout: "",
          stderr: "",
      },
  )
  [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libgssapi-sys-0.2.4/build.rs:9] res = Ok(
      Output {
          status: ExitStatus(
              unix_wait_status(
                  0,
              ),
          ),
          stdout: "",
          stderr: "",
      },
  )
  [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libgssapi-sys-0.2.4/build.rs:9] res = Ok(
      Output {
          status: ExitStatus(
              unix_wait_status(
                  0,
              ),
          ),
          stdout: "",
          stderr: "",
      },
  )
  [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libgssapi-sys-0.2.4/build.rs:9] res = Ok(
      Output {
          status: ExitStatus(
              unix_wait_status(
                  0,
              ),
          ),
          stdout: "",
          stderr: "",
      },
  )
  [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libgssapi-sys-0.2.4/build.rs:9] res = Ok(
      Output {
          status: ExitStatus(
              unix_wait_status(
                  0,
              ),
          ),
          stdout: "",
          stderr: "",
      },
  )
  [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libgssapi-sys-0.2.4/build.rs:9] res = Ok(
      Output {
          status: ExitStatus(
              unix_wait_status(
                  0,
              ),
          ),
          stdout: "",
          stderr: "",
      },
  )
  [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libgssapi-sys-0.2.4/build.rs:9] res = Ok(
      Output {
          status: ExitStatus(
              unix_wait_status(
                  0,
              ),
          ),
          stdout: "",
          stderr: "",
      },
  )
  [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libgssapi-sys-0.2.4/build.rs:9] res = Ok(
      Output {
          status: ExitStatus(
              unix_wait_status(
                  0,
              ),
          ),
          stdout: "/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2\n/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2\n",
          stderr: "",
      },
  )
  src/wrapper_mit.h:1:10: fatal error: 'gssapi.h' file not found
  src/wrapper_mit.h:1:10: fatal error: 'gssapi.h' file not found, err: true
Error:   thread 'main' panicked at 'failed to generate gssapi bindings: ()', /home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/libgssapi-sys-0.2.4/build.rs:80:10
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
Error: Process completed with exit code 101.

You can read it here: https://github.com/zerodaycode/Canyon-SQL/actions/runs/4666217730/jobs/8260547851

And for Windows:

https://github.com/zerodaycode/Canyon-SQL/actions/runs/4666217730/jobs/8260548158

I am not pasting the full log because it does not specifically points towards the same kind of error with gssapi, but only happens in our newer builds, after asking a tiberius to use the integrated-auth-gssapi feature.

This is our actual dependency: tiberius = { version = "0.12.1", features = ["tds73", "chrono", "integrated-auth-gssapi"] }

Are you guys already faced this kind of errors?

Thanks before hand for your time

willbush commented 1 year ago

See my comment here. I think you're having the same issue as #293.