[PATCH] libalpm: ignore .hook suffix when sorting hooks

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] libalpm: ignore .hook suffix when sorting hooks

Jouke Witteveen
It is desirable to have 'a-post.hook' ordered after 'a.hook'. For this,
it is needed to ignore the suffix when sorting.
---

Two years ago, I suggested this patch in https://bugs.archlinux.org/task/49653.
Today, I do so again :-).

Thanks to Jelle van der Waa for pointing me to the correct list.

Regards,
- Jouke

 lib/libalpm/hook.c | 16 ++++++++++++----
 lib/libalpm/hook.h |  2 ++
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/lib/libalpm/hook.c b/lib/libalpm/hook.c
index 0805e661..d90ed2da 100644
--- a/lib/libalpm/hook.c
+++ b/lib/libalpm/hook.c
@@ -551,7 +551,16 @@ static int _alpm_hook_triggered(alpm_handle_t *handle, struct _alpm_hook_t *hook
 
 static int _alpm_hook_cmp(struct _alpm_hook_t *h1, struct _alpm_hook_t *h2)
 {
- return strcmp(h1->name, h2->name);
+ size_t suflen = strlen(ALPM_HOOK_SUFFIX), l1, l2;
+ int ret;
+ l1 = strlen(h1->name) - suflen;
+ l2 = strlen(h2->name) - suflen;
+ /* exclude the suffixes from comparison */
+ ret = strncmp(h1->name, h2->name, l1 <= l2 ? l1 : l2);
+ if(ret == 0 && l1 != l2) {
+ return l1 < l2 ? -1 : 1;
+ }
+ return ret;
 }
 
 static alpm_list_t *find_hook(alpm_list_t *haystack, const void *needle)
@@ -634,8 +643,7 @@ int _alpm_hook_run(alpm_handle_t *handle, alpm_hook_when_t when)
  alpm_event_hook_t event = { .when = when };
  alpm_event_hook_run_t hook_event;
  alpm_list_t *i, *hooks = NULL, *hooks_triggered = NULL;
- const char *suffix = ".hook";
- size_t suflen = strlen(suffix), triggered = 0;
+ size_t suflen = strlen(ALPM_HOOK_SUFFIX), triggered = 0;
  int ret = 0;
 
  for(i = alpm_list_last(handle->hookdirs); i; i = alpm_list_previous(i)) {
@@ -681,7 +689,7 @@ int _alpm_hook_run(alpm_handle_t *handle, alpm_hook_when_t when)
  memcpy(path + dirlen, entry->d_name, name_len + 1);
 
  if(name_len < suflen
- || strcmp(entry->d_name + name_len - suflen, suffix) != 0) {
+ || strcmp(entry->d_name + name_len - suflen, ALPM_HOOK_SUFFIX) != 0) {
  _alpm_log(handle, ALPM_LOG_DEBUG, "skipping non-hook file %s\n", path);
  continue;
  }
diff --git a/lib/libalpm/hook.h b/lib/libalpm/hook.h
index 364d22d7..30d565df 100644
--- a/lib/libalpm/hook.h
+++ b/lib/libalpm/hook.h
@@ -22,6 +22,8 @@
 
 #include "alpm.h"
 
+#define ALPM_HOOK_SUFFIX ".hook"
+
 int _alpm_hook_run(alpm_handle_t *handle, alpm_hook_when_t when);
 
 #endif /* ALPM_HOOK_H */
--
2.17.1
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] libalpm: ignore .hook suffix when sorting hooks

Allan McRae
On 10/06/18 03:45, Jouke Witteveen wrote:

> It is desirable to have 'a-post.hook' ordered after 'a.hook'. For this,
> it is needed to ignore the suffix when sorting.
> ---
>
> Two years ago, I suggested this patch in https://bugs.archlinux.org/task/49653.
> Today, I do so again :-).
>
> Thanks to Jelle van der Waa for pointing me to the correct list.
>
> Regards,
> - Jouke
>

Thanks for chasing this up.  We tend to forget about patches in the bug
tracker if one of the devs does not submit them to the list.

Patch looks fine to me.

A
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] libalpm: ignore .hook suffix when sorting hooks

Jouke Witteveen
On Tue, Jun 19, 2018 at 4:25 PM Allan McRae <[hidden email]> wrote:

>
> On 10/06/18 03:45, Jouke Witteveen wrote:
> > It is desirable to have 'a-post.hook' ordered after 'a.hook'. For this,
> > it is needed to ignore the suffix when sorting.
> > ---
> >
> > Two years ago, I suggested this patch in https://bugs.archlinux.org/task/49653.
> > Today, I do so again :-).
> >
> > Thanks to Jelle van der Waa for pointing me to the correct list.
> >
> > Regards,
> > - Jouke
> >
>
> Thanks for chasing this up.  We tend to forget about patches in the bug
> tracker if one of the devs does not submit them to the list.
>
> Patch looks fine to me.

This one was omitted from 5.1.1, but the documentation was included!

- Jouke
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] libalpm: ignore .hook suffix when sorting hooks

Jouke Witteveen
On Fri, Jul 27, 2018 at 9:26 AM Jouke Witteveen <[hidden email]> wrote:

>
> On Tue, Jun 19, 2018 at 4:25 PM Allan McRae <[hidden email]> wrote:
> >
> > On 10/06/18 03:45, Jouke Witteveen wrote:
> > > It is desirable to have 'a-post.hook' ordered after 'a.hook'. For this,
> > > it is needed to ignore the suffix when sorting.
> > > ---
> > >
> > > Two years ago, I suggested this patch in https://bugs.archlinux.org/task/49653.
> > > Today, I do so again :-).
> >
> > Thanks for chasing this up.  We tend to forget about patches in the bug
> > tracker if one of the devs does not submit them to the list.
> >
> > Patch looks fine to me.
>
> This one was omitted from 5.1.1, but the documentation was included!

Shall I wait two more years and try again ;-)?

Regards,
- Jouke
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] libalpm: ignore .hook suffix when sorting hooks

Eli Schwartz-2
On 08/03/2018 12:16 PM, Jouke Witteveen wrote:
>> This one was omitted from 5.1.1, but the documentation was included!
>
> Shall I wait two more years and try again ;-)?
>
> Regards,
> - Jouke

It's queued for post-5.1.1:
https://git.archlinux.org/users/allan/pacman.git/commit/?h=post-5.1.1&id=855689788962671d8b75aeafdaefdc1483ed6d15

Marked as accepted: https://patchwork.archlinux.org/patch/599/

I asked allan if he wanted to update the documentation now, because
making documentation better is something easy to do even in bugfix-only
releases. On closer look, neither of us noticed that the documentation
added "where the ordering ignores the suffix"...

For future reference, I advise you in cases like this to submit a
'[PATCH 1/2] include more information on hook files" *without* this
change, then a "[PATCH 2/2]" which changes the behavior of libalpm and
updates the documentation to match. :)

--
Eli Schwartz
Bug Wrangler and Trusted User


signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] libalpm: ignore .hook suffix when sorting hooks

Jouke Witteveen
On Fri, Aug 3, 2018 at 6:29 PM Eli Schwartz <[hidden email]> wrote:

>
> On 08/03/2018 12:16 PM, Jouke Witteveen wrote:
> >> This one was omitted from 5.1.1, but the documentation was included!
> >
> > Shall I wait two more years and try again ;-)?
> >
> > Regards,
> > - Jouke
>
> It's queued for post-5.1.1:
> https://git.archlinux.org/users/allan/pacman.git/commit/?h=post-5.1.1&id=855689788962671d8b75aeafdaefdc1483ed6d15
>
> Marked as accepted: https://patchwork.archlinux.org/patch/599/
>
> I asked allan if he wanted to update the documentation now, because
> making documentation better is something easy to do even in bugfix-only
> releases. On closer look, neither of us noticed that the documentation
> added "where the ordering ignores the suffix"...
>
> For future reference, I advise you in cases like this to submit a
> '[PATCH 1/2] include more information on hook files" *without* this
> change, then a "[PATCH 2/2]" which changes the behavior of libalpm and
> updates the documentation to match. :)

Will do, thanks!
- Jouke
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] libalpm: ignore .hook suffix when sorting hooks

Allan McRae
In reply to this post by Eli Schwartz-2
On 04/08/18 02:29, Eli Schwartz wrote:

> On 08/03/2018 12:16 PM, Jouke Witteveen wrote:
>>> This one was omitted from 5.1.1, but the documentation was included!
>>
>> Shall I wait two more years and try again ;-)?
>>
>> Regards,
>> - Jouke
>
> It's queued for post-5.1.1:
> https://git.archlinux.org/users/allan/pacman.git/commit/?h=post-5.1.1&id=855689788962671d8b75aeafdaefdc1483ed6d15
>
> Marked as accepted: https://patchwork.archlinux.org/patch/599/
>
> I asked allan if he wanted to update the documentation now, because
> making documentation better is something easy to do even in bugfix-only
> releases. On closer look, neither of us noticed that the documentation
> added "where the ordering ignores the suffix"...
>
> For future reference, I advise you in cases like this to submit a
> '[PATCH 1/2] include more information on hook files" *without* this
> change, then a "[PATCH 2/2]" which changes the behavior of libalpm and
> updates the documentation to match. :)
>

I knew I had applied it...   Just not to the branch I thought I had!

I might try and do some post-5.1.1 patch review soon.

A