[arch-dev-public] Namcap maintainer

Dave Reisner d at falconindy.com
Fri Dec 19 13:44:56 UTC 2014


On Fri, Dec 19, 2014 at 08:03:37AM -0500, keenerd wrote:
> On 12/14/14, Dave Reisner <d at falconindy.com> wrote:
> > No objections to Kyle taking over namcap alone, but I have to ask, Kyle,
> > are you interested in taking on pyalpm as well?
> 
> Not terribly interested, but I guess I can if I have to.  Attached is
> a quick 30 minute hack that lets pyalpm build against 4.2 and restores
> namcap functionality.  Pycman probably suffers greatly.

Almost. Missing from this patch is handling for the new 'Usage' key in
repo sections of the config parser.

> -Kyle
> http://kmkeen.com

> --- src/transaction.c	2013-04-01 08:21:10.000000000 -0400
> +++ src/transaction.c	2014-12-19 07:24:54.595390109 -0500
> @@ -30,7 +30,7 @@
>  /** Transaction callbacks */
>  extern PyObject *global_py_callbacks[N_CALLBACKS];
>  
> -void pyalpm_eventcb(alpm_event_t event, void* data1, void *data2) {
> +void pyalpm_eventcb(alpm_event_type_t event, void* data1, void *data2) {

This is wrong. pyalpm_eventcb must match alpm_cb_event, which is defined
as:

typedef void (*alpm_cb_event)(alpm_event_t *);

>    const char *eventstr;
>    PyObject *obj1 = Py_None;
>    PyObject *obj2 = Py_None;
> @@ -59,6 +59,8 @@
>      case ALPM_EVENT_INTERCONFLICTS_DONE:
>        eventstr = "Done checking inter conflicts";
>        break;
> +    /* deprecated in 4.2
> +    * leaving these commented out while finding 4.2 equivalents

data1 and data2 are now pulled from the event itself, so you'll use
something like this in place:

  obj1 = pyalpm_package_from_pmpkg(event.package_operation.oldpkg);
  obj2 = pyalpm_package_from_pmpkg(event.package_operation.newpkg);

>      case ALPM_EVENT_ADD_START:
>        eventstr = "Adding a package";
>        obj1 = pyalpm_package_from_pmpkg(data1);
> @@ -86,6 +88,7 @@
>        obj1 = pyalpm_package_from_pmpkg(data1);
>        obj2 = pyalpm_package_from_pmpkg(data2);
>        break;
> +    */
>      case ALPM_EVENT_INTEGRITY_START:
>        eventstr = "Checking integrity";
>        break;
> @@ -114,12 +117,26 @@
>      case ALPM_EVENT_DISKSPACE_DONE:
>        eventstr = "Done checking disk space";
>        break;
> +    /* deprecated in 4.2
>      case ALPM_EVENT_OPTDEP_REQUIRED:
> +    */
>      case ALPM_EVENT_DATABASE_MISSING:
>      case ALPM_EVENT_KEYRING_START:
>      case ALPM_EVENT_KEYRING_DONE:
>      case ALPM_EVENT_KEY_DOWNLOAD_START:
>      case ALPM_EVENT_KEY_DOWNLOAD_DONE:
> +    /* new in 4.2 */
> +    case ALPM_EVENT_PACKAGE_OPERATION_START:
> +    case ALPM_EVENT_PACKAGE_OPERATION_DONE:
> +    case ALPM_EVENT_RETRIEVE_DONE:
> +    case ALPM_EVENT_RETRIEVE_FAILED:
> +    case ALPM_EVENT_PKGDOWNLOAD_START:
> +    case ALPM_EVENT_PKGDOWNLOAD_DONE:
> +    case ALPM_EVENT_PKGDOWNLOAD_FAILED:
> +    case ALPM_EVENT_OPTDEP_REMOVAL:
> +    case ALPM_EVENT_PACNEW_CREATED:
> +    case ALPM_EVENT_PACSAVE_CREATED:
> +    case ALPM_EVENT_PACORIG_CREATED:
>      default:
>        eventstr = "unknown event";
>    }


More information about the arch-dev-public mailing list