From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: =?UTF-8?Q?Elias_M=C3=A5rtenson?= Newsgroups: gmane.emacs.devel Subject: How to ship native modules? Date: Mon, 20 Feb 2017 18:00:24 +0800 Message-ID: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=001a1141d600114ece0548f35597 X-Trace: blaine.gmane.org 1487586828 29887 195.159.176.226 (20 Feb 2017 10:33:48 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 20 Feb 2017 10:33:48 +0000 (UTC) To: emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Feb 20 11:33:45 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cflHp-0006qn-VP for ged-emacs-devel@m.gmane.org; Mon, 20 Feb 2017 11:33:42 +0100 Original-Received: from localhost ([::1]:37260 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cflHp-0001Zz-2E for ged-emacs-devel@m.gmane.org; Mon, 20 Feb 2017 05:33:41 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40011) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cfklf-00068J-CW for emacs-devel@gnu.org; Mon, 20 Feb 2017 05:00:28 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cfkle-000730-Di for emacs-devel@gnu.org; Mon, 20 Feb 2017 05:00:27 -0500 Original-Received: from mail-vk0-x22b.google.com ([2607:f8b0:400c:c05::22b]:35361) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cfkle-00072o-90 for emacs-devel@gnu.org; Mon, 20 Feb 2017 05:00:26 -0500 Original-Received: by mail-vk0-x22b.google.com with SMTP id x75so58817748vke.2 for ; Mon, 20 Feb 2017 02:00:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=X8mN57X/4fEP8ck1KM3iPpgIeyHyUz4nTwlXvKfrzEo=; b=Lryyz63c4ab30AFi6KL5zRMEpjhsrKN6KoB2CnzoYaevBSdHna9WTxIPHpv57TZJkR hQxkXXfBx48bLtrgL+vch1194eOsr2xxuDIAJCFPoY0AB4u+HopyQ60t5knNUcb0/n51 f3OHhrS7DtgqLRFjAX9L3zZtLdKRMJzKkQJbh2IHStW0inZzrGCOG5/Y4n8gk5BUR84j aeRDAZgI0i1FKeiSc+nIwlj7O3ObMmEJC8LBbohfoH1mpfc6KjhTX0rZ/wc/8wDCwpLI Jr+RHwjm34UIPITqOk4mhOu34MQGDsxIpNuQ6336a/7FIZffv1+z9XKLtvflHs3ksVZH AV/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=X8mN57X/4fEP8ck1KM3iPpgIeyHyUz4nTwlXvKfrzEo=; b=cWV6QNMCic9UP1QgyD5oRi0HjccQnogTkq8dT/5zLolXJGz3u5QTjqE4QS0t+DFgCt JpUwOEWnda/czKuXHbg9tdTrRfPsOU0j17p6+3Q/Nek1FNCBe1DEWYvoUXKHFPQ59BMw dNpeQaF2s4hAZQe7kCK7W6XjebbmmEXKE+kTICbyi9szIE00m2gZOOY7PMFha38k7W9P Wh9W10gQMx9vIwzrQ6ay6FEZvtD3G4eZoCwBKjKdbR0qMoGagBH5eOweniyzfGAXJRSM u86QfdmcALkFPZUECbKpac1Rdq5NPyFnICv9cupc8nCRvcPFnzNfoN1VMJmyu7/lyaFE YLnA== X-Gm-Message-State: AMke39m5sa1YWBHHnr+XSEb7/GnEPlaKv2lmOWfqRZt/FBub5br8aqUltGQP4FHCuXV0BIltFh3SKU6bmItWBg== X-Received: by 10.31.150.134 with SMTP id y128mr8902884vkd.102.1487584825001; Mon, 20 Feb 2017 02:00:25 -0800 (PST) Original-Received: by 10.103.119.5 with HTTP; Mon, 20 Feb 2017 02:00:24 -0800 (PST) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400c:c05::22b X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:212483 Archived-At: --001a1141d600114ece0548f35597 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable As I am working on making the Gnus-GSS support ready for general consumption, I need to know how this thing should be distributed. Right now there are two separate issues, with the second dependent on the first: The first issue is that I have no idea how to actually distribute the native GSSAPI module. It's just a single, reasonably small, C file that needs to be compiled with the libgssapi_krb5.so library. If this is bundled in Emacs proper, making it a part of the build system isn't too complicated, although I don't believe this has been done before. If it is to be shipped as part of ELPA, then a different question emerges: Should I simply add code to the Elisp files that checks if it can find the native library and if not, compile it on the fly? It's doable, but I'd hard to reinvent several wheels to do so. Essentially I'd have to rebuild part of autoconf in Elisp. The second issue is how to ship my changes to Gnus. My changes are limited to a changes to nnimap.el, but this new feature will now try to require the =E2=80=98gss=E2=80=99 feature when gssapi authentication is enabled. If the= gssapi library is shipped as part of ELPA, then we end up with the interesting situation where the packaged version of Gnus depends on a package in ELPA. How should I continue with this? Regards, Elias --001a1141d600114ece0548f35597 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
As I am working on making the Gnus-GSS support ready for g= eneral consumption, I need to know how this thing should be distributed.
Right now there are two separate issues, with the second d= ependent on the first:

The first issue is that I h= ave no idea how to actually distribute the native GSSAPI module. It's j= ust a single, reasonably small, C file that needs to be compiled with the l= ibgssapi_krb5.so library. If this is bundled in Emacs proper, making it a p= art of the build system isn't too complicated, although I don't bel= ieve this has been done before.

If it is to be shi= pped as part of ELPA, then a different question emerges: Should I simply ad= d code to the Elisp files that checks if it can find the native library and= if not, compile it on the fly? It's doable, but I'd hard to reinve= nt several wheels to do so. Essentially I'd have to rebuild part of aut= oconf in Elisp.

The second issue is how to ship my= changes to Gnus. My changes are limited to a changes to nnimap.el, but thi= s new feature will now try to require the =E2=80=98gss=E2=80=99 feature whe= n gssapi authentication is enabled. If the gssapi library is shipped as par= t of ELPA, then we end up with the interesting situation where the packaged= version of Gnus depends on a package in ELPA.

How= should I continue with this?

Regards,
E= lias
--001a1141d600114ece0548f35597--