2 puntos por GN⁺ 2025-04-07 | Aún no hay comentarios. | Compartir por WhatsApp
  • En una situación donde la herramienta de sincronización de archivos integrada en macOS se había quedado basada en una versión de 2006, Apple reemplazó rsync 2.6.9 por openrsync
  • El rsync incluido antes en macOS recibió correcciones necesarias por temas de seguridad y otros problemas, pero no incorporó las funciones de rsync 3.x posteriores a 2.6.9
  • El motivo principal del cambio es la diferencia de licencias: rsync 2.x se distribuye bajo GPLv2 y rsync 3.x bajo GPLv3
  • openrsync es compatible con rsync, pero solo admite una parte de los argumentos de línea de comandos, por lo que los scripts existentes podrían no funcionar igual en Sequoia
  • A partir de macOS 15.4, /usr/bin/rsync apunta a openrsync, así que los administradores de Mac deben revisar la compatibilidad de las opciones soportadas y de la automatización existente

El antiguo rsync 2.6.9 que seguía en macOS

  • rsync es una herramienta de línea de comandos para transferir y sincronizar archivos en sistemas operativos tipo Unix
    • Puede usarse entre dispositivos de almacenamiento conectados directamente en la misma computadora
    • También puede usarse para sincronizar archivos con otra computadora en la red
  • macOS incluyó rsync durante mucho tiempo, pero la versión provista por Apple era la última versión de rsync 2.x, rsync 2.6.9
  • rsync 2.6.9 se publicó en noviembre de 2006, y Apple no actualizó rsync en macOS a versiones posteriores incluso después de la llegada de rsync 3.x
  • Apple sí aplicó a rsync 2.6.9 incluido en macOS las actualizaciones necesarias por problemas de seguridad y otros temas
  • Sin embargo, hasta macOS Sequoia, el rsync de Apple seguía teniendo una base de casi 20 años, y no incluía las nuevas funciones agregadas en versiones posteriores a 2.6.9

El estancamiento de versión provocado por GPLv2 y GPLv3

  • rsync 2.x y 3.x se distribuyen bajo versiones distintas de la licencia GPL
  • Apple consideró que podía cumplir las condiciones de GPLv2 de rsync 2.x, pero concluyó que no podía cumplir las condiciones de GPLv3 de rsync 3.x
  • Por eso, macOS no ofreció rsync 3.x

El cambio a openrsync en macOS Sequoia

  • En macOS Sequoia, Apple sustituyó rsync 2.6.9 por openrsync
  • openrsync es una implementación de rsync que no usa licencia GPL
  • openrsync se distribuye bajo la ISC license, una de las licencias de la familia BSD
  • La ISC license es una licencia permisiva (permissive license) que impone restricciones mínimas al uso, modificación y distribución del software al que se aplica
  • Apple consideró que, a diferencia de las condiciones de GPLv3 de rsync 3.x, sí podía cumplir los términos de licencia de openrsync

Diferencias de compatibilidad importantes para administradores de Mac

  • A futuro, Apple podrá ofrecer versiones actualizadas de openrsync sin preocuparse por los problemas de cumplimiento de GPL de rsync
  • El cambio práctico más importante es que, aunque openrsync sea compatible con rsync, solo permite parte de los argumentos de línea de comandos de rsync
  • Funciones de rsync que operaban en versiones anteriores de macOS podrían fallar en macOS Sequoia
    • Esto se debe a que esa función puede no existir en la herramienta de línea de comandos openrsync incluida en Sequoia
  • Las funciones compatibles en openrsync de macOS Sequoia pueden revisarse en la página del manual de openrsync

Cómo verificarlo en macOS 15.4

  • A partir de macOS 15.4, la herramienta openrsync está enlazada a /usr/bin/rsync
  • El usuario puede ejecutar openrsync igual que antes ejecutaba la herramienta de línea de comandos rsync
  • La información de versión de openrsync puede comprobarse con el siguiente comando
/usr/bin/rsync --version
  • La salida será similar a la siguiente
username@computername ~ % /usr/bin/rsync --version
openrsync: protocol version 29
rsync version 2.6.9 compatible
username@computername ~ %
  • En la salida aparecen protocol version 29 y rsync version 2.6.9 compatible

Aún no hay comentarios.

Aún no hay comentarios.