From patchwork Sun Jul 28 22:49:54 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yann E. MORIN" X-Patchwork-Id: 262626 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from silver.osuosl.org (silver.osuosl.org [140.211.166.136]) by ozlabs.org (Postfix) with ESMTP id 44AFA2C0128 for ; Mon, 29 Jul 2013 08:50:15 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 3491C3079F; Sun, 28 Jul 2013 22:50:11 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id A+8AJg9jXHRz; Sun, 28 Jul 2013 22:50:07 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 0467630CB7; Sun, 28 Jul 2013 22:50:07 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 5A59C1BFA90 for ; Sun, 28 Jul 2013 22:50:20 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id E0F7C8D4E9 for ; Sun, 28 Jul 2013 22:50:06 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PuENNx78uEul for ; Sun, 28 Jul 2013 22:50:05 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wi0-f173.google.com (mail-wi0-f173.google.com [209.85.212.173]) by whitealder.osuosl.org (Postfix) with ESMTPS id 82E458D1EE for ; Sun, 28 Jul 2013 22:50:04 +0000 (UTC) Received: by mail-wi0-f173.google.com with SMTP id en1so2363968wid.6 for ; Sun, 28 Jul 2013 15:50:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:x-mailer; bh=TE1c/i+BI1ePCyhmtBI38aR1Qv7h6bubQqeiqSAjlA0=; b=wdJRxjNqMBmE3DyDcMQZ4oJEknG6gZQfZUEPHoWcfJi0O6KjwOLMpl8ylz6neAr+me SERP/HV4va0TJvZl0b1XxSLPMEtEtPPwxwJBmY/qXMhD50Mj+qYUqLHWujj0APgZ68I1 OwifWahxeOUaYlldvmy14c96+t4Bb3ZSqI1p1AdqKn6VceqeBDn4jdFe8CmHS3AqmmP9 9YuDfIWhBwatLT6PkOqMt6gVARBBY9KaiYsJWEBCSpB1usGZc007m2J5HyBStrdt2K6Y dWal7zPkCuM7oii7/zWPCQFoMYermqUTF0MUPGAjyx3i9FqHDlIpvNuw2vJ3oSALDxWj nTCA== X-Received: by 10.180.88.234 with SMTP id bj10mr3339979wib.42.1375051802826; Sun, 28 Jul 2013 15:50:02 -0700 (PDT) Received: from gourin.bzh.lan (ks3095497.kimsufi.com. [94.23.60.27]) by mx.google.com with ESMTPSA id d8sm18970255wiz.0.2013.07.28.15.50.00 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 28 Jul 2013 15:50:01 -0700 (PDT) From: "Yann E. MORIN" To: buildroot@busybox.net Date: Mon, 29 Jul 2013 00:49:54 +0200 Message-Id: <1375051794-19671-1-git-send-email-yann.morin.1998@free.fr> X-Mailer: git-send-email 1.8.1.2 Cc: "Yann E. MORIN" Subject: [Buildroot] [PATCH] package/libedit: switch to alternate URL for proper packaging X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: buildroot-bounces@busybox.net From: "Yann E. MORIN" Upstream libedit does not have a proper homepage, and does not provide any sort of packaging whatsoever. So far, we used Debian's wayback machine to get a tarball of a rather oldish libedit. As Thomas pointed out, someone has been maintaining a proper autotools based, up-to-date package for a while. While Debian is stuck to 2.11 (5 years old now), we bump to 3.1 as a bonus. Remove our libedit.pc, it's now bundled with the package. Reported-by: Thomas De Schampheleire Signed-off-by: "Yann E. MORIN" Cc: Thomas De Schampheleire --- package/libedit/Config.in | 8 +- ...libedit-000-check-bsd-functions-in-libbsd.patch | 18 +++++ package/libedit/libedit.mk | 90 ++++++---------------- package/libedit/libedit.pc | 13 ---- 4 files changed, 46 insertions(+), 83 deletions(-) create mode 100644 package/libedit/libedit-000-check-bsd-functions-in-libbsd.patch delete mode 100644 package/libedit/libedit.pc diff --git a/package/libedit/Config.in b/package/libedit/Config.in index 7a515db..7345cc9 100644 --- a/package/libedit/Config.in +++ b/package/libedit/Config.in @@ -1,15 +1,19 @@ config BR2_PACKAGE_LIBEDIT bool "libedit" depends on ( BR2_arm || BR2_armeb || BR2_m68k || BR2_i386 || BR2_x86_64 ) # libbsd - depends on BR2_TOOLCHAIN_HAS_THREADS # libbsd - select BR2_PACKAGE_LIBBSD select BR2_PACKAGE_NCURSES help The editline library (from BSD) provides generic line editing and history functions. It slightly resembles GNU readline. + The official homepage is at: http://ftp.netbsd.org/pub/NetBSD/NetBSD-release-5-0/src/lib/libedit/ + Jess Thrysoee maintains an autotoolified packaged, which we use + in Buildroot as it makes it much simpler than using the upstream + sources which require pmake: + http://www.thrysoee.dk/editline/ + comment "libedit requires a toolchain with thread support" depends on ( BR2_arm || BR2_armeb || BR2_m68k || BR2_i386 || BR2_x86_64 ) # libbsd depends on !BR2_TOOLCHAIN_HAS_THREADS # libbsd diff --git a/package/libedit/libedit-000-check-bsd-functions-in-libbsd.patch b/package/libedit/libedit-000-check-bsd-functions-in-libbsd.patch new file mode 100644 index 0000000..21c57f8 --- /dev/null +++ b/package/libedit/libedit-000-check-bsd-functions-in-libbsd.patch @@ -0,0 +1,18 @@ +configure: on Linux, the BSD functions require linking against libbsd + +Signed-off-by: "Yann E. MORIN" + +diff -durN libedit-20130712-3.1.orig/configure.ac libedit-20130712-3.1/configure.ac +--- libedit-20130712-3.1.orig/configure.ac 2013-07-12 20:39:22.000000000 +0200 ++++ libedit-20130712-3.1/configure.ac 2013-07-28 23:35:35.012676469 +0200 +@@ -108,6 +108,10 @@ + #AC_FUNC_REALLOC + AC_TYPE_SIGNAL + AC_FUNC_STAT ++ ++# Search for libbsd for *vis functions ++AC_CHECK_LIB([bsd], [vis]) ++ + AC_CHECK_FUNCS([endpwent isascii memchr memset re_comp regcomp strcasecmp strchr strcspn strdup strerror strrchr strstr strtol issetugid wcsdup strlcpy strlcat fgetln vis strvis strunvis __secure_getenv secure_getenv]) + + # strlcpy diff --git a/package/libedit/libedit.mk b/package/libedit/libedit.mk index c344b73..6769fdc 100644 --- a/package/libedit/libedit.mk +++ b/package/libedit/libedit.mk @@ -4,72 +4,26 @@ # ################################################################################ -# Note: libedit does not have a regular homepage, and it seems -# there is no place where to download a tarball from. That's -# why we use the Debian way-back machine. -LIBEDIT_VERSION_MAJOR = 2 -LIBEDIT_VERSION_MINOR = 11 -LIBEDIT_VERSION_EXTRA = -20080614 -LIBEDIT_VERSION = $(LIBEDIT_VERSION_MAJOR).$(LIBEDIT_VERSION_MINOR) -LIBEDIT_SOURCE = libedit_$(LIBEDIT_VERSION)$(LIBEDIT_VERSION_EXTRA).orig.tar.bz2 -LIBEDIT_SITE = http://snapshot.debian.org/archive/debian/20120601T033558Z/pool/main/libe/libedit -LIBEDIT_SUBDIR = libedit -LIBEDIT_PATCH = libedit_2.11-20080614-5.debian.tar.bz2 +LIBEDIT_VERSION = 20130712-3.1 +LIBEDIT_SITE = http://www.thrysoee.dk/editline/ LIBEDIT_INSTALL_STAGING = YES -LIBEDIT_DEPENDENCIES = host-pmake libbsd ncurses - -define LIBEDIT_POST_PATCH_PERMISSIONS - chmod +x $(@D)/libedit/makelist -endef - -LIBEDIT_POST_PATCH_HOOKS += LIBEDIT_POST_PATCH_PERMISSIONS - -define LIBEDIT_FIX_VIS_H_INCLUDE - $(SED) 's,^#include $$,#include ,;' \ - $(@D)/libedit/filecomplete.c \ - $(@D)/libedit/history.c \ - $(@D)/libedit/readline.c -endef -LIBEDIT_POST_PATCH_HOOKS += LIBEDIT_FIX_VIS_H_INCLUDE - -LIBEDIT_PMAKE_OPTS = MKPROFILE=no MKCATPAGES=no MLINKS= MANPAGES= NOGCCERROR=1 \ - SHLIB_SHFLAGS="-Wl,-soname,libedit.so.${LIBEDIT_VERSION_MAJOR}" \ - -define LIBEDIT_BUILD_CMDS - cd $(@D)/$(LIBEDIT_SUBDIR); \ - $(TARGET_CONFIGURE_OPTS) LDADD="-lbsd -lcurses" pmake $(LIBEDIT_PMAKE_OPTS) -endef - -LIBEDIT_MAN_LINKS = el_init el_end el_reset el_gets el_getc el_push el_parse \ - el_set el_get el_source el_resize el_line el_insertstr \ - el_deletestr history_init history_end history - -# $1: DESTDIR to install into -# Can't use pmake to install, it wants to be root. sigh... :-( -# We need to create the .so links, otherwise we can't link; and waiting for -# ldconfig is too late as it's done just before building the images. -define LIBEDIT_INSTALL_CMDS - $(INSTALL) -D -m 0644 package/libedit/libedit.pc $(1)/usr/lib/pkgconfig/libedit.pc - $(INSTALL) -D -m 0644 $(@D)/libedit/libedit.a $(1)/usr/lib/libedit.a - $(INSTALL) -D -m 0644 $(@D)/libedit/libedit_pic.a $(1)/usr/lib/libedit_pic.a - $(INSTALL) -D -m 0644 $(@D)/libedit/libedit.so.2.11 $(1)/usr/lib/libedit.so.2.11 - $(INSTALL) -D -m 0644 $(@D)/libedit/histedit.h $(1)/usr/include/histedit.h - ln -sf libedit.so.$(LIBEDIT_VERSION) $(1)/usr/lib/libedit.so.$(LIBEDIT_VERSION_MAJOR) - ln -sf libedit.so.$(LIBEDIT_VERSION_MAJOR) $(1)/usr/lib/libedit.so - $(INSTALL) -D -m 0644 $(@D)/libedit/readline/readline.h $(1)/usr/include/editline/readline.h - $(INSTALL) -v -D -m 0644 $(@D)/libedit/editline.3 $(1)/usr/share/man/man3/editline.3el - $(INSTALL) -v -D -m 0644 $(@D)/libedit/editrc.5 $(1)/usr/share/man/man5/editrc.5el - for lnk in $(LIBEDIT_MAN_LINKS); do \ - ln -sfv editline.3el $(1)/usr/share/man/man3/$${lnk}.3el; \ - done -endef - -define LIBEDIT_INSTALL_STAGING_CMDS - $(call LIBEDIT_INSTALL_CMDS,$(STAGING_DIR)) -endef - -define LIBEDIT_INSTALL_TARGET_CMDS - $(call LIBEDIT_INSTALL_CMDS,$(TARGET_DIR)) -endef - -$(eval $(generic-package)) +LIBEDIT_DEPENDENCIES = ncurses + +# We're patching configure.ac +LIBEDIT_AUTORECONF = YES + +# Note: libbsd required for *vis functions, but works only with a toolchain +# with __progname; otherwise, some features are disabled, as if libbsd was +# missing entirely. +ifeq ($(BR2_PACKAGE_LIBBSD),y) +LIBEDIT_DEPENDENCIES += libbsd +endif + +# Wide-char support is not autodetected by configure, we have to help a bit. +ifeq ($(BR2_TOOLCHAIN_EXTERNAL_WCHAR),y) +LIBEDIT_CONF_OPT += --enable-widec +else +LIBEDIT_CONF_OPT += --disable-widec +endif + +$(eval $(autotools-package)) diff --git a/package/libedit/libedit.pc b/package/libedit/libedit.pc deleted file mode 100644 index 47ac871..0000000 --- a/package/libedit/libedit.pc +++ /dev/null @@ -1,13 +0,0 @@ -prefix=/usr -exec_prefix=${prefix} -libdir=${exec_prefix}/lib -includedir=${prefix}/include - -Name: libedit -Description: Not just a replacement library for libreadline and libhistory. -Version: 2.11 -Requires: libbsd ncurses -Requires.private: -Libs: -L${libdir} -ledit -Libs.private: -Cflags: -I${includedir}