package/libedit: switch to alternate URL for proper packaging

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 <patrickdepinguin+buildroot@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas De Schampheleire <patrickdepinguin+buildroot@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Yann E. MORIN 2013-07-29 18:44:17 +02:00 committed by Thomas Petazzoni
parent 2b0b5859b7
commit dc2a13a2aa
4 changed files with 41 additions and 83 deletions

View File

@ -1,15 +1,14 @@
config BR2_PACKAGE_LIBEDIT config BR2_PACKAGE_LIBEDIT
bool "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 select BR2_PACKAGE_NCURSES
help help
The editline library (from BSD) provides generic line editing The editline library (from BSD) provides generic line editing
and history functions. It slightly resembles GNU readline. 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/ http://ftp.netbsd.org/pub/NetBSD/NetBSD-release-5-0/src/lib/libedit/
comment "libedit requires a toolchain with thread support" Jess Thrysoee maintains an autotoolified packaged, which we use
depends on ( BR2_arm || BR2_armeb || BR2_m68k || BR2_i386 || BR2_x86_64 ) # libbsd in Buildroot as it makes it much simpler than using the upstream
depends on !BR2_TOOLCHAIN_HAS_THREADS # libbsd sources which require pmake:
http://www.thrysoee.dk/editline/

View File

@ -0,0 +1,18 @@
configure: on Linux, the BSD functions require linking against libbsd
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
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

View File

@ -4,72 +4,26 @@
# #
################################################################################ ################################################################################
# Note: libedit does not have a regular homepage, and it seems LIBEDIT_VERSION = 20130712-3.1
# there is no place where to download a tarball from. That's LIBEDIT_SITE = http://www.thrysoee.dk/editline/
# 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_INSTALL_STAGING = YES LIBEDIT_INSTALL_STAGING = YES
LIBEDIT_DEPENDENCIES = host-pmake libbsd ncurses LIBEDIT_DEPENDENCIES = ncurses
define LIBEDIT_POST_PATCH_PERMISSIONS # We're patching configure.ac
chmod +x $(@D)/libedit/makelist LIBEDIT_AUTORECONF = YES
endef
LIBEDIT_POST_PATCH_HOOKS += LIBEDIT_POST_PATCH_PERMISSIONS # 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
define LIBEDIT_FIX_VIS_H_INCLUDE # Wide-char support is not autodetected by configure, we have to help a bit.
$(SED) 's,^#include <vis\.h>$$,#include <bsd/vis\.h>,;' \ ifeq ($(BR2_TOOLCHAIN_EXTERNAL_WCHAR),y)
$(@D)/libedit/filecomplete.c \ LIBEDIT_CONF_OPT += --enable-widec
$(@D)/libedit/history.c \ else
$(@D)/libedit/readline.c LIBEDIT_CONF_OPT += --disable-widec
endef endif
LIBEDIT_POST_PATCH_HOOKS += LIBEDIT_FIX_VIS_H_INCLUDE
LIBEDIT_PMAKE_OPTS = MKPROFILE=no MKCATPAGES=no MLINKS= MANPAGES= NOGCCERROR=1 \ $(eval $(autotools-package))
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))

View File

@ -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}