Difference between revisions of "Talk:DeveloperWiki:Pacman Hooks"

From ArchWiki
Jump to navigation Jump to search
(texlive file database update)
(gconf: new section)
Line 97: Line 97:
 
:I think you can put multiple Targets under one <tt>[Trigger]</tt>, can't you? --[[User:Grawity|grawity]] ([[User talk:Grawity|talk]]) 10:08, 24 April 2016 (UTC)
 
:I think you can put multiple Targets under one <tt>[Trigger]</tt>, can't you? --[[User:Grawity|grawity]] ([[User talk:Grawity|talk]]) 10:08, 24 April 2016 (UTC)
 
:: Oh yes! I just tested it. Thanks!
 
:: Oh yes! I just tested it. Thanks!
 +
 +
== gconf ==
 +
 +
{{bc|1=
 +
[Trigger]
 +
Type = file
 +
Operation = Install
 +
Operation = Upgrade
 +
Target = usr/share/gconf/schemas/*.schemas
 +
 +
[Action]
 +
Description = Installing GConf schemas...
 +
When = PostTransaction
 +
Exec = /usr/share/libalpm/hooks.bin/gconfpkg --install
 +
NeedsTargets
 +
}}
 +
 +
{{bc|1=
 +
[Trigger]
 +
Type = file
 +
Operation = Remove
 +
Target = usr/share/gconf/schemas/*.schemas
 +
 +
[Action]
 +
Description = Removing GConf schemas...
 +
When = PreTransaction
 +
Exec = /usr/share/libalpm/hooks.bin/gconfpkg --uninstall
 +
NeedsTargets
 +
}}
 +
 +
{{bc|1=
 +
#!/usr/bin/bash
 +
while read -r f; do
 +
  f=${f##*/}
 +
  f=${f%.schemas}
 +
  /usr/bin/gconfpkg "$@" "$f"
 +
done
 +
}}

Revision as of 10:23, 24 April 2016

glib-compile-schemas

Used by 222 packages

Proposed Hook (glib-compile-schemas)

[Trigger]
Type = File
Operation = Install
Operation = Upgrade
Operation = Remove
Target = usr/share/glib-2.0/schemas/*.gschema.xml
Target = usr/share/glib-2.0/schemas/*.gschema.override

[Action]
Description = Compile GSettings XML schema files...
When = PostTransaction
Exec = /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas

--City-busz (talk) 08:06, 23 April 2016 (UTC)

Thanks, I think that will work. --Heftig (talk) 08:22, 23 April 2016 (UTC)

hook script location

libalpm doesn't place any restrictions on where we store custom scripts for hooks, but I think we should store them all in the same place for the sake of consistency. I suggest '/usr/share/libalpm/hooks.bin/' in order to keep them near the hooks themselves. Apg (talk) 11:47, 23 April 2016 (UTC)

systemd-sysusers and systemd-tmpfiles

systemd-tmpfiles

Used by 52 packages

Proposed hook (systemd):

[Trigger]
Type = File
Operation = Install
Operation = Upgrade
Target = usr/lib/tmpfiles.d/*.conf

[Action]
Description = Updating systemd-tmpfiles…
When = PostTransaction
Exec = /bin/sh -c 'while read -r f; do /usr/bin/systemd-tmpfiles --create "$f" ; done'
NeedsTargets

systemd-sysusers

Used by 29 packages

Proposed hook (systemd):

[Trigger]
Type = File
Operation = Install
Operation = Upgrade
Target = usr/lib/sysusers.d/*.conf

[Action]
Description = Updating systemd-sysusers…
When = PostTransaction
Exec = /bin/sh -c 'while read -r f; do /usr/bin/systemd-sysusers "$f" ; done'
NeedsTargets

--AsamK (talk) 14:13, 23 April 2016 (UTC)

while read

Suggested alternative (conveniently, texinfo already depends on findutils):

Exec = /usr/bin/xargs -i /usr/bin/install-info {} /usr/share/info/dir
NeedsTargets

--grawity (talk) 14:49, 23 April 2016 (UTC)

texinfo only depends on find due to its install scriptlet which is being replaced by these hooks. Allan (talk) 00:35, 24 April 2016 (UTC)

systemctl daemon-reload?

Not sure if this is ever called during the update process anywhere. If so I imagine it would be called often. -- Rdeckard (talk), ArchWiki Maintainer 00:07, 24 April 2016 (UTC)

texlive file database update

Used in 27 packages with calls to either mktexlsr or texhash (one symlinks to the other).

Proposed hook (texlive-texmf):

[Trigger]
Type = File
Operation = Install
Operation = Upgrade
Operation = Remove
Target = usr/share/texmf/*
Target = usr/share/texmf-dist/*
 
[Action]
Description = Updating texlive filename database...
When = PostTransaction
Exec = /usr/bin/mktexlsr

--abdo (talk) 09:49, 24 April 2016 (UTC)

I think you can put multiple Targets under one [Trigger], can't you? --grawity (talk) 10:08, 24 April 2016 (UTC)
Oh yes! I just tested it. Thanks!

gconf

[Trigger]
Type = file
Operation = Install
Operation = Upgrade
Target = usr/share/gconf/schemas/*.schemas

[Action]
Description = Installing GConf schemas...
When = PostTransaction
Exec = /usr/share/libalpm/hooks.bin/gconfpkg --install
NeedsTargets
[Trigger]
Type = file
Operation = Remove
Target = usr/share/gconf/schemas/*.schemas

[Action]
Description = Removing GConf schemas...
When = PreTransaction
Exec = /usr/share/libalpm/hooks.bin/gconfpkg --uninstall
NeedsTargets
#!/usr/bin/bash
while read -r f; do
  f=${f##*/}
  f=${f%.schemas}
  /usr/bin/gconfpkg "$@" "$f"
done