2016-08-19 2 views
0

저는 nix를 사용하려고하는데 nix가 nano를 만들지 못하는 것과 관련된 문제가 발생했습니다. 그러나 확실하지 않습니다. 나는 OSX 10.11.4에있어 (I뿐만 아니라 맥 아주 새로운 해요) 다음과 같은 오류가 점점 오전 : 내가 잘못 여기서 설정 한 뭔가OSX의 Nix가 nano를 만들지 못합니다?

clang -DHAVE_CONFIG_H -I. -I.. -DLOCALEDIR=\"/nix/store/h1afxzyfxh7xc8b0scvq831s1yapczgm-nano-2.6.3/share/locale\" -DSYSCONFDIR=\"/etc\" -I/nix/store/gmb9mxkm5mqfnhlav16rx5x7wf070qqf-ncurses-5.9-dev/include/ncursesw -I/nix/store/gmb9mxkm5mqfnhlav16rx5x7wf070qqf-ncurses-5.9-dev/include -g -O2 -Wall -c -o winio.o winio.c 
winio.c:513:15: error: use of undeclared identifier 'TIOCLINUX' 
     if (ioctl(0, TIOCLINUX, &modifiers) >= 0 && (modifiers & 0x04)) { 
        ^
1 error generated. 

거기를? 내가 한 모든 일은 curl ... | shsource ~/.nix-profile/etc/profile.d/nix.sh을 통해 설정되었습니다.

나는이 shell.nix에서 구축을 위해 노력 해요 :

{ nixpkgs ? import <nixpkgs> {}, compiler ? "default" }: 

let 

    inherit (nixpkgs) pkgs; 

    # Build a default.nix file from our .cabal file: 
    here = ./.; 
    project = pkgs.stdenv.mkDerivation ({ 
    name = "default.nix"; 

    buildCommand = '' 
    ${pkgs.cabal2nix}/bin/cabal2nix file://${here} > $out 
    ''; 
    }); 

    # Use the package set for our compiler: 
    haskellPackages = if compiler == "default" 
         then pkgs.haskellPackages 
         else pkgs.haskell.packages.${compiler}; 

    # Helper function that gets Nix-packaged dependencies off GitHub. 
    # GitHub project needs a default.nix file for this to work. 
    fetchHaskell = { url, rev, sha256 }: 
    haskellPackages.callPackage (pkgs.fetchgit { inherit url rev sha256; }) {}; 

    drv = haskellPackages.callPackage project { 
    # Specify GitHub dependencies here. 
    # You can get url, rev and sha256 by running 'nix-prefetch-git [email protected]' 
    ...snip.... 
    }; 

in 

    if pkgs.lib.inNixShell then drv.env else drv 

모든 포인터는 크게 감상 할 수있다.

답변

1

나는 nix에 대해 아무것도 몰라.하지만 나는 소스 코드에서 nano를 만드는 것과 같은 오류가 발생한다. 문제는 Linux 콘솔에서 Ctrl-Arrow 키를 확인하는 코드 섹션이 무조건 포함되어 Linux 이외의 다른 시스템에서 빌드가 실패하는 것입니다.

그것이 (내 수동으로 다운로드 나노 버전 2.6.3에 라인 507-523)이를하고있다 winio.c의 전체 섹션을 찾아 제거 (나는 그것을 전에 #ifdef TIOCLINUX을 넣어 후 #endif하지만 그냥 삭제 , #if 0을 사용하거나 주석으로 처리하는 것도 효과가있을 것입니다.) nix에서 빌드 한 소스 코드를 제어 할 수 없다면, 다른 방법 (수동 소스 컴파일, 또는 macport 또는 fink, 또는 사제)

나노의 MacPorts의 버전은이 문제를 해결하는 패치가 포함되어 https://trac.macports.org/browser/trunk/dports/editors/nano/files/patch-src-winio.c.diff이 문제였다 고정 된 것 같습니다

+0

감사합니다. 나는 이것을 나노 측면이나 패치와 함께 양조에서 해결하는 것과 같은 방식으로 고쳐야 할 필요가 있다고 생각한다. – Gregory

0

. nixpkgs repo에있는 bugtracker는 이와 같은 문제를보고 할 수있는 좋은 곳입니다. 사람들은 일반적으로 깨진 패키지에 대해 꽤 민감합니다.

압도적 인 다수의 Nix 사용자가 Linux를 사용하기 때문에 패키지가 충분히 테스트되지 않아 OSX에서 패키지가 깨지는 경우가 있습니다.

관련 문제 :

관련 문제