summary refs log blame commit diff
path: root/pkgs/desktops/gnome/core/nautilus/default.nix
blob: 5addc8311c96b3454e53ea0aa58e9ec4ae524c8c (plain) (tree)
1
2
3
4
5
6
7
8

        


          
            
           
                  


                    



                
       





                  
         
                    



                
                   




                           
                  
                       
  
 
                         
                     
                   
 
                                     
 
                  
                                                                                                     
                                                            

    










                                                                    
                       
                      




                         
              
             
                    
                  
    
 
                 


                   
                            
                             
                    
                              


                  



              

                     


                    
                
    
 
                           
        
    
 



                 


                       
                                                    
                                                 
                                                            
                                                          


     




                                                                                              
              
                                       
                          
                                  


      
                    
                                               
                                                   
                                
                                
                                      

    
{ lib
, stdenv
, fetchurl
, meson
, ninja
, pkg-config
, gi-docgen
, docbook-xsl-nons
, gettext
, libxml2
, desktop-file-utils
, wrapGAppsHook4
, gtk4
, libadwaita
, libportal-gtk4
, gnome
, gnome-autoar
, glib-networking
, shared-mime-info
, libnotify
, libexif
, libseccomp
, librsvg
, webp-pixbuf-loader
, tracker
, tracker-miners
, gexiv2
, libselinux
, libcloudproviders
, gdk-pixbuf
, substituteAll
, gnome-desktop
, gst_all_1
, gsettings-desktop-schemas
, gnome-user-share
, gobject-introspection
}:

stdenv.mkDerivation rec {
  pname = "nautilus";
  version = "43.2";

  outputs = [ "out" "dev" "devdoc" ];

  src = fetchurl {
    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
    sha256 = "qGqap6RVURsCnOSaHYtGWcPDVbXYHXNgu00N5jev7eA=";
  };

  patches = [
    # Allow changing extension directory using environment variable.
    ./extension_dir.patch

    # Hardcode required paths.
    (substituteAll {
      src = ./fix-paths.patch;
      inherit tracker;
    })
  ];

  nativeBuildInputs = [
    desktop-file-utils
    gettext
    gobject-introspection
    libxml2
    meson
    ninja
    pkg-config
    gi-docgen
    docbook-xsl-nons
    wrapGAppsHook4
  ];

  buildInputs = [
    gexiv2
    glib-networking
    gnome-desktop
    gnome.adwaita-icon-theme
    gsettings-desktop-schemas
    gnome-user-share
    gst_all_1.gst-plugins-base
    gtk4
    libadwaita
    libportal-gtk4
    libexif
    libnotify
    libseccomp
    libselinux
    gdk-pixbuf
    libcloudproviders
    shared-mime-info
    tracker
    tracker-miners
    gnome-autoar
  ];

  propagatedBuildInputs = [
    gtk4
  ];

  mesonFlags = [
    "-Ddocs=true"
  ];

  preFixup = ''
    gappsWrapperArgs+=(
      # Thumbnailers
      --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
      --prefix XDG_DATA_DIRS : "${librsvg}/share"
      --prefix XDG_DATA_DIRS : "${webp-pixbuf-loader}/share"
      --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
    )
  '';

  postFixup = ''
    # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
    moveToOutput "share/doc" "$devdoc"
  '';

  passthru = {
    updateScript = gnome.updateScript {
      packageName = pname;
      attrPath = "gnome.${pname}";
    };
  };

  meta = with lib; {
    description = "The file manager for GNOME";
    homepage = "https://wiki.gnome.org/Apps/Files";
    license = licenses.gpl3Plus;
    platforms = platforms.linux;
    maintainers = teams.gnome.members;
  };
}