#980 Removing Gconf2 scriptlet section.
Closed 3 years ago by lyessaadi. Opened 3 years ago by lyessaadi.
lyessaadi/packaging-committee master  into  master

@@ -191,100 +191,6 @@ 

  

  These are discussed on a xref:UsersAndGroups.adoc[separate page]

  

- === GConf

- 

- GConf is a configuration scheme currently used by the GNOME desktop. Programs which use it setup default values in a [NAME] .schemas file which is installed under %\{_sysconfdir}/gconf/schemas/[NAME] .schemas. These defaults are then registered with the gconf daemon which monitors the configuration values and alerts applications when values the applications are interested in change. The schema files also provide documentation about what each value in the configuration system means (which gets displayed when you browse the database in the gconf-editor program).

- 

- For packaging purposes, we have to disable schema installation during build, and also register the values in the [NAME] .schemas file with the gconf daemon on installation and unregister them on removal. Due to the ordering of the scriptlets, this is a four step process.

- 

- Disabling the GConf installation during the package creation can be done like so:

- 

- ....

- %install

- export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1

- make install DESTDIR=$RPM_BUILD_ROOT

- ...

- ....

- 

- The GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL environment variable suppresses the installation of the schema during the building of the package. An alternative for some packages is to pass a configure flag:

- 

- ....

- %build

- %configure --disable-schemas

- ...

- ....

- 

- Unfortunately, this configure switch only works if the upstream packager has adapted their Makefile.am to handle it. If the Makefile.am is not configured, this switch won't do anything and you'll need to use the environment variable instead.

- 

- Here's the second part:

- 

- ....

- BuildRequires: GConf2

- Requires(pre): GConf2

- Requires(post): GConf2

- Requires(preun): GConf2

- ...

- %pre

- %gconf_schema_prepare schema1 schema2

- %gconf_schema_obsolete schema3

- ....

- 

- In this section we uninstall old schemas during upgrade using one of two macros.

- 

- `+%gconf_schema_prepare+` is used for any current GConf schemas. It

- takes care of uninstalling previous versions of schemas that this package

- currently installs. It takes a space separated list of schema names without

- path or suffix that the package installs. Note that behind the scenes, this

- macro works with the `+%post+` scriptlet to only process GConf schemas

- if changes have occurred.

- 

- `+%gconf_schema_obsolete+` is used for schemas that this package

- previously provided but no longer does. It will deregister the old schema if

- it is present on the system. Nothing will happen if the old schema is not

- present. This macro takes a space separated list of schemas to uninstall. One

- example of using this might be if the package changed names. If the old schema

- was named `+foo.schemas+` and the new schema is named

- `+foobar.schemas+` you'd use:

- 

- ....

- %gconf_schema_prepare foobar

- %gconf_schema_obsolete foo

- ....

- 

- The next section does the processing of the newly installed schemas:

- 

- ....

- %post

- %gconf_schema_upgrade schema1 schema2

- ....

- 

- `+%gconf_schema_upgrade+` takes a space separated list of schemas that

- the package currently installs just like `+%gconf_schema_prepare+`.

- Behind the scenes, it does the actual work of registering the new version of

- the schema and deregistering the old version.

- 

- The last section is for unregistering schemas when a package is removed:

- 

- ....

- %preun

- %gconf_schema_remove schema1 schema2

- ....

- 

- When a package is upgraded rpm invokes the `+%pre+` scriptlet to register

- and deregister the schemas. When a package is uninstalled, the

- `+%preun+` scriptlet is used. `+%gconf_schema_remove+` takes

- the list of schemas that this package currently provides and removes them for us.

- 

- ==== Rebuilds for changes to macros

- 

- When macros change, packages that make use of them have to be rebuilt to

- pick up the changes. This repoquery command can be used to find the schema

- including packages to rebuild:

- 

- ....

- repoquery --whatprovides "/etc/gconf/schemas/*" |sort |uniq |wc -l

- ....

- 

  === Systemd

  

  Packages containing systemd unit files need to use scriptlets to ensure proper handling of those services.

Hi!

So, Gconf2 is orphaned, and I just remembered that the guidelines mentioned it in the « Scriptlets » section. I think it's a good idea to remove that whole section since, well, Gconf2 is being removed from Fedora!

My bad, someone recently took GConf2...

Pull-Request has been closed by lyessaadi

3 years ago
Metadata