Pautas de Scriptlets GConf
|
⚠️ Información obsoleta
GConf es el esquema de configuración anterior utilizado por el escritorio GNOME 2.x. Fue reemplazado en GNOME 3 por DConf. GConf aún se utiliza en aproximadamente media docena de paquetes antiguos de Fedora. No necesitará trabajar con GConf a menos que mantenga uno de esos paquetes. El resto de este documento se conserva como referencia histórica. |
Escribir Scriptlets de GConf
Los programas que usan GConf configuran los valores predeterminados en un archivo .schemas, instalado en %{_sysconfdir}/gconf/schemas/[NOMBRE].schemas. Estos valores predeterminados se registran en el demonio gconf, que supervisa los valores de configuración y alerta a las aplicaciones cuando cambian los valores que les interesan. Los archivos de esquema también proporcionan documentación sobre el significado de cada valor en el sistema de configuración (que se muestra al explorar la base de datos en el programa gconf-editor).
Para los propósitos de empaquetado, tenemos que inhabilitar el esquema de instalación durante la construcción, y además registrar el valor en el archivo [NOMBRE].schemas con el demonio gconf en la instalación y desregistrarlos en la desinstalación. Debido a la ordenación de los scriptlets, esto es el cuarto paso del proceso.
La inhabilitación de la instalación de GConf durante la creación del paquete se puede hacer de la siguiente manera:
%install
export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
make install DESTDIR=$RPM_BUILD_ROOT
...
La variable de entorno GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL suprime la instalación del esquema durante la compilación del paquete. Una alternativa para algunos paquetes es pasar un indicador de configuración:
%build
%configure --disable-schemas
...
Lamentablemente, esta opción de configuración solo funciona si el empaquetador original ha adaptado su archivo Makefile.am para gestionarla. Si el archivo Makefile.am no está configurado, esta opción no tendrá ninguna función y deberá usar la variable de entorno en su lugar.
Aquí está la parte segunda:
BuildRequires: GConf2
Requires(pre): GConf2
Requires(post): GConf2
Requires(preun): GConf2
...
%pre
%gconf_schema_prepare schema1 schema2
%gconf_schema_obsolete schema3
En esta sección desinstalamos esquemas antiguos durante la modernización utilizando una de las dos macros.
%gconf_schema_Prepara es utilizado para cualquier esquema actual de GConf. Cuida de desinstalar versiones de esquemas anteriores que estén éste empaquetados actualmente instalado. Toma un listado de nombre de esquema separado por espacios sin ruta o sufijo que instala el paquete. Nota que detrás de las escenas, este macro funciona con el scriptlet %poste solo para proceso de esquema GConf si los cambios han ocurrido.
%gconf_schema_obsolete es utilizado para esquemas que este paquete previamente proporcionado pero no ya lo hace más. Lo des‐registrará el esquema anterior si está presente en el sistema. no sucederá nada el esquema anterior no está presente. Este macro toma un listado separado espacial de esquemas para desinstalar. Un ejemplo de utilizar esto podría ser si el paquete cambió nombres. Si el esquema anterior fue nombrado foo.schemas y el esquema nuevo se nombra foobar.schemas utilizarías:
%gconf_schema_prepare foobar
%gconf_schema_obsolete foo
La siguiente sección hace el proceso de los esquemas instalados nuevamente:
%post
%gconf_schema_upgrade schema1 schema2
%gconf_schema_upgrade toma un listado separado por espacio de esquemas que el paquete se instala actualmente tan solo como %gconf_schema_prepare. Detrás de las escenas, realiza el trabajo actual de registrar la versión nueva del esquema y des‐registrar la versión anterior.
La última sección está para esquemas no registrados cuando un paquete es desinstalado:
%preun
%gconf_schema_remove schema1 schema2
Cuando un paquete es rpm mejorado invoca el scriplet %pre para registrar y des‐registrar los esquemas. Cuando un paquete es desinstalado, se utiliza el scriptlet %preun. %gconf_schema_remove toma el listado de esquemas que este paquete proporciona actualmente y nos los retira.
Recompila para cambios a macros
Cuando las macros cambian, los paquetes que se aseguran de ellas tienen que ser recompilados para tomar los cambios. Esta instrucción de repoquery pueden ser utilizados para encontrar el esquema incluyendo los paquetes a recompilar:
repoquery --whatprovides "/etc/gconf/schemas/*" |sort |uniq |wc -l
Want to help? Learn how to contribute to Fedora Docs ›