# nautilus 48.7 — el gestor de ficheros de GNOME. Es el `dolphin` de este escritorio: hasta hoy el # perfil `escritorio-gnome` tenía shell, terminal, portales y llavero, y **ninguna forma de ver una # carpeta**. Va PEGADO a `gvfs` (misma tanda, receta hermana): sin gvfs esta app abre y navega, pero # la papelera que dibuja no existe. # # ── LAS CUATRO DEPS QUE NO SE PUEDEN APAGAR, con su línea ─────────────────────────────────────── # El `meson.build` de esta versión las pide sin `required: false` — no hay perilla: # :114 gnome-autoar-0 >= 0.4.4 ← extraer/comprimir desde el menú contextual # :115 gnome-desktop-4 >= 43 ← ya sellada en esta cola (44.5) # :123 libportal >= 0.7 ┐ ← las dos salen de UNA receta, ver libportal.toml # :124 libportal-gtk4 >= 0.5 ┘ # :129 tracker-sparql-3.0 ← la da `tinysparql` (publica ese `.pc` además del suyo) # Y `gtk4 >= 4.17.5` (:116), que la isla cumple con 4.18.6 — comprobado antes de elegir la versión, # porque un nautilus 48 sobre un gtk4 viejo no configura. # # ── `-Dextensions=false`: LO QUE SE PIERDE, DICHO CON NOMBRE ──────────────────────────────────── # Es la perilla más cara de esta receta y conviene no disfrazarla. Con `extensions=true` (el # default) el bloque `:104-109` exige CUATRO deps de golpe: `gexiv2`, `gdk-pixbuf`, # `gstreamer-tag-1.0` y `gstreamer-pbutils-1.0`. De ésas sólo `gdk-pixbuf` está sellada; `gexiv2` # arrastra exiv2 (C++ grande) y las dos de gst arrastran gstreamer + gst-plugins-base enteros. # # ⇒ **Lo que NO va a estar: las pestañas de metadatos en «Propiedades».** Nada de EXIF de una foto # (cámara, apertura, fecha de disparo) ni de etiquetas de un MP3/vídeo (artista, duración, códec). # El resto de Propiedades —tamaño, permisos, tipo, abrir-con— es del núcleo y sí está. Es una app # completa con una pestaña menos, no una app mutilada; y el día que entre gstreamer al catálogo # —que es un frente propio, con las apps de usuario final detrás— esto es UNA bandera. # # ── LAS OTRAS PERILLAS ────────────────────────────────────────────────────────────────────────── # -Dpackagekit=false (default `true`) → PackageKit es el gestor de paquetes de las distros # rpm/deb; esta distro tiene el suyo (`takana install`, Etapa F). Sirve # para «este fichero no se abre con nada, ¿instalo algo?» y acá no hay del # otro lado a quién preguntarle. Dejarlo en `true` no rompe el build (habla # por D-Bus) pero deja un diálogo que nunca puede contestar. # -Dcloudproviders=false (default `true`) → `libcloudproviders`, la barra lateral de Dropbox y # compañía. No está en el catálogo y no hay cliente que la pueble. # -Dintrospection=false → el typelib de `libnautilus-extension`, para extensiones en Python/JS. # No hay ninguna todavía; la isla sabe hacerlo cuando la haya. # -Dselinux=false → ya es el default; se declara porque el seed lo listaba como frontera y # no lo es: no hay SELinux en esta distro (musl, sin systemd). # -Dtests=headless→none → el default COMPILA tests; ninguno se instala. # # ── LA BÚSQUEDA, Y POR QUÉ NO ES LA COMPLETA ──────────────────────────────────────────────────── # `tinysparql` da la librería y el almacén, pero el INDEXADOR (`localsearch`, ex tracker-miners) no # está en el catálogo. Sin él, nautilus usa `NautilusSearchEngineSimple`: encuentra por NOMBRE # recorriendo directorios, sin índice y sin mirar dentro de los ficheros. Está escrito también en el # encabezado de `tinysparql.toml`; se repite acá porque es lo que el usuario nota. # # ⚠ EL `sed` DEL `ar`, y acá es el caso más grosero de todos: `po/ar.po` trae **86** `msgstr[5]`. # El `msgfmt` de gettext-tiny muere con SIGILL ante el primero ([[gettext-tiny-msgfmt-plural-arabe]]). # Cuesta la traducción al árabe del gestor de ficheros; el arreglo real es autorar el gettext de GNU # y es una campaña de 108 recetas. name = "nautilus" version = "48.7" license = "GPL-3.0-or-later" [source] tarball = "https://download.gnome.org/sources/nautilus/48/nautilus-48.7.tar.xz" sha256 = "60a7a371b5536fe329ced90cce46fff9b7b3ae256d448e1cb796df29d32ee235" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "dynamic" [build.phases] configure = "sed -i '/^ar$/d' po/LINGUAS && PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Dextensions=false -Dintrospection=false -Dpackagekit=false -Dcloudproviders=false -Dselinux=false -Ddocs=false -Dtests=none -Dc_args=-Wno-error=date-time" compile = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output" install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild" [deps] # La lista es el cierre `.pc` COMPLETO, no las deps directas: la hidratación de takana es directa y # no transitiva, y `pkg-config` aborta si falta un `.pc` nombrado en `Requires.private` aunque el # link sea dinámico. Los tres que la gente olvida, verificados leyendo los `.pc` del store: # libadwaita-1.pc Requires.private: … appstream ⇒ appstream + libxmlb + libyaml-shared + # curl + openssl + zstd # gnome-desktop-4.pc Requires.private: … xkeyboard-config, iso-codes, libseccomp # libsoup-3.0.pc Requires.private: sqlite3, libpsl, zlib, libnghttp2 # Y uno que no es un `.pc` sino un PROGRAMA, que costó la primera corrida: `meson.build:249` hace # `find_program('update-desktop-database')` REQUERIDO —para la caché MIME→aplicación— y eso lo trae # `desktop-file-utils`. Falla en el configure, antes de compilar una línea, con # `ERROR: Program 'update-desktop-database' not found or not executable`. Es dep de BUILD además de # lo que ya era: `targets.toml` la declara raíz de los cuatro escritorios por el runtime. build = ["meson", "samurai", "python3", "pkgconf", "gettext-tiny", "desktop-file-utils", "glib", "gtk4", "libadwaita", "gnome-desktop", "gsettings-desktop-schemas", "gnome-autoar", "libarchive-shared", "libportal", "tinysparql", "json-glib", "libsoup", "libpsl", "nghttp2", "sqlite-shared", "icu4c", "libxml2-shared", "dbus", "appstream", "libxmlb", "libyaml-shared", "curl", "openssl", "zstd", "xkeyboard-config", "iso-codes", "libseccomp", "pango", "gdk-pixbuf", "cairo-shared", "graphene", "harfbuzz", "fribidi", "fontconfig-shared", "freetype-shared", "pixman", "libpng-shared", "expat", "libjpeg-turbo-shared", "libtiff-shared", "libepoxy", "wayland", "wayland-protocols", "libxkbcommon", "libdrm", "mesa", "pcre2", "libffi", "zlib-shared"]