Skip to content

Missing strftime on Illumos #4449

Closed
@extrowerk

Description

@extrowerk

Reference: fish-shell/fish-shell#11099 (comment)

Illumos strftime manpage: https://smartos.org/man/3C/strftime

Fish git master build output:

user@build:~/projekt/fish-shell% cargo build
warning: [email protected]: Cannot find sphinx-build to build man pages.
warning: [email protected]: If you install it now you need to run `cargo clean` and rebuild, or set $FISH_BUILD_DOCS=1 explicitly.
   Compiling fish v4.1.0-alpha0 (/export/home/user/projekt/fish-shell)
error[E0432]: unresolved import `libc::strftime`
    --> src/history.rs:1451:17
     |
1451 |             use libc::strftime;
     |                 ^^^^^^^^^^^^^^ no `strftime` in the root

error[E0433]: failed to resolve: could not find `resource` in `sys`
  --> src/builtins/ulimit.rs:18:66
   |
18 |     let resource = unsafe { std::mem::transmute::<i32, nix::sys::resource::Resource>(resource) };
   |                                                                  ^^^^^^^^ could not find `resource` in `sys`

error[E0433]: failed to resolve: could not find `resource` in `sys`
  --> src/builtins/ulimit.rs:19:15
   |
19 |     nix::sys::resource::getrlimit(resource)
   |               ^^^^^^^^ could not find `resource` in `sys`

error[E0433]: failed to resolve: could not find `resource` in `sys`
  --> src/builtins/ulimit.rs:27:66
   |
27 |     let resource = unsafe { std::mem::transmute::<i32, nix::sys::resource::Resource>(resource) };
   |                                                                  ^^^^^^^^ could not find `resource` in `sys`

error[E0433]: failed to resolve: could not find `resource` in `sys`
  --> src/builtins/ulimit.rs:28:15
   |
28 |     nix::sys::resource::setrlimit(resource, rlim_cur, rlim_max)
   |               ^^^^^^^^ could not find `resource` in `sys`

error[E0425]: cannot find function `mkostemp` in crate `libc`
    --> src/fallback.rs:126:24
     |
126  |         unsafe { libc::mkostemp(name, O_CLOEXEC) }
     |                        ^^^^^^^^ help: a function with a similar name exists: `mkstemp`
     |
    ::: /export/home/szilard/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.172/src/unix/mod.rs:1538:5
     |
1538 |     pub fn mkstemp(template: *mut c_char) -> c_int;
     |     ----------------------------------------------- similarly named function `mkstemp` defined here

error[E0609]: no field `d_type` on type `&dirent`
   --> src/wutil/dir_iter.rs:294:50
    |
294 |         let typ = dirent_type_to_entry_type(dent.d_type);
    |                                                  ^^^^^^ unknown field
    |
    = note: available fields are: `d_ino`, `d_off`, `d_reclen`, `d_name`

error[E0308]: mismatched types
   --> src/fork_exec/spawn.rs:117:18
    |
117 |         flags |= libc::POSIX_SPAWN_SETSIGDEF;
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `i32`, found `i16`

error[E0277]: no implementation for `i32 |= i16`
   --> src/fork_exec/spawn.rs:117:15
    |
117 |         flags |= libc::POSIX_SPAWN_SETSIGDEF;
    |               ^^ no implementation for `i32 |= i16`
    |
    = help: the trait `BitOrAssign<i16>` is not implemented for `i32`
    = help: the following other types implement trait `BitOrAssign<Rhs>`:
              `i32` implements `BitOrAssign<&i32>`
              `i32` implements `BitOrAssign`

error[E0308]: mismatched types
   --> src/fork_exec/spawn.rs:118:18
    |
118 |         flags |= libc::POSIX_SPAWN_SETSIGMASK;
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `i32`, found `i16`

error[E0277]: no implementation for `i32 |= i16`
   --> src/fork_exec/spawn.rs:118:15
    |
118 |         flags |= libc::POSIX_SPAWN_SETSIGMASK;
    |               ^^ no implementation for `i32 |= i16`
    |
    = help: the trait `BitOrAssign<i16>` is not implemented for `i32`
    = help: the following other types implement trait `BitOrAssign<Rhs>`:
              `i32` implements `BitOrAssign<&i32>`
              `i32` implements `BitOrAssign`

error[E0308]: mismatched types
   --> src/fork_exec/spawn.rs:120:22
    |
120 |             flags |= libc::POSIX_SPAWN_SETPGROUP;
    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `i32`, found `i16`

error[E0277]: no implementation for `i32 |= i16`
   --> src/fork_exec/spawn.rs:120:19
    |
120 |             flags |= libc::POSIX_SPAWN_SETPGROUP;
    |                   ^^ no implementation for `i32 |= i16`
    |
    = help: the trait `BitOrAssign<i16>` is not implemented for `i32`
    = help: the following other types implement trait `BitOrAssign<Rhs>`:
              `i32` implements `BitOrAssign<&i32>`
              `i32` implements `BitOrAssign`

Some errors have detailed explanations: E0277, E0308, E0425, E0432, E0433, E0609.
For more information about an error, try `rustc --explain E0277`.
warning: [email protected]: Cannot find sphinx-build to build man pages.
warning: [email protected]: If you install it now you need to run `cargo clean` and rebuild, or set $FISH_BUILD_DOCS=1 explicitly.
error: could not compile `fish` (lib) due to 13 previous errors
user@build:~/projekt/fish-shell%

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-feature-requestCategory: new feature or requestE-help-wantedCall for participation: Help is requested to fix this issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions