Temat: IRSSI z obsługą skryptów
Witam
Czy istnieje paczka klienta IRSSI z obsługą skryptów? Czy jest to w ogóle możliwe pod OpenWRT?
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → IRSSI z obsługą skryptów
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
Witam
Czy istnieje paczka klienta IRSSI z obsługą skryptów? Czy jest to w ogóle możliwe pod OpenWRT?
A ten w paczkach nie ma? (pytam się, nie wiem)
Ten w repo normalnie je obsługuje.
Więc zostaje zrobienie własnej paczki i włączenie obsługi skryptów.
59 --with-perl=no
60 --with-glib-prefix="$(STAGING_DIR)/usr" \
61 --with-textui \
62 --without-terminfo \
63 --without-bot \
Ta domyślna ma wyłączone to, pewnie dlatego że nie ciągnąć perla i reszty zależności.
@KeFaS obsługuje? To jak zrobić żeby startowały automatycznie? Ja próbując uruchomić nawet z palca /script load nazwa nie dałem rady.
Rzeczywiście, mój błąd, bo w sumie nie używam skryptów, wystarczy mi autosendcmd w configu.
Podbijam. Jest szansa na irssi z obsługą skryptów?
Ale co Cię interesuje, w minimalistycznej wersji, masz autologowanie, auto auth i inne rzeczy. Chyba że piszesz bota do irssi..
Od dłuższego czasu próbuję uruchomić irssi z obsługą skryptów, znalazłem makefile z projektu NSLU2, gdzie takowa była. Jest tam dużo komentarzy i podpowiedzi jak można to zrobić.
http://svn.nslu2-linux.org/svnroot/optw … e/irssi.mk
###########################################################
#
# irssi
#
###########################################################
#
# IRSSI_VERSION, IRSSI_SITE and IRSSI_SOURCE define
# the upstream location of the source code for the package.
# IRSSI_DIR is the directory which is created when the source
# archive is unpacked.
# IRSSI_UNZIP is the command used to unzip the source.
# It is usually "zcat" (for .gz) or "bzcat" (for .bz2)
#
# You should change all these variables to suit your package.
# Please make sure that you add a description, and that you
# list all your packages' dependencies, seperated by commas.
#
# If you list yourself as MAINTAINER, please give a valid email
# address, and indicate your irc nick if it cannot be easily deduced
# from your name or email address. If you leave MAINTAINER set to
# "NSLU2 Linux" other developers will feel free to edit.
#
IRSSI_SITE=http://www.irssi.org/files
IRSSI_VERSION=0.8.14
IRSSI_SOURCE=irssi-$(IRSSI_VERSION).tar.gz
IRSSI_DIR=irssi-$(IRSSI_VERSION)
IRSSI_UNZIP=zcat
IRSSI_MAINTAINER=NSLU2 Linux <nslu2-linux@yahoogroups.com>
IRSSI_DESCRIPTION=A terminal based IRC client for UNIX systems.
IRSSI_SECTION=net
IRSSI_PRIORITY=optional
IRSSI_DEPENDS=glib, ncurses, gconv-modules, openssl
IRSSI_CONFIGURE_OPTIONS=
ifneq (,$(filter perl, $(PACKAGES)))
IRSSI_SUGGESTS=perl
IRSSI_CONFIGURE_OPTIONS+=--with-perl
else
IRSSI_SUGGESTS=
IRSSI_CONFIGURE_OPTIONS+=--without-perl
endif
ifeq (no,$(IPV6))
IRSSI_CONFIGURE_OPTIONS+=--disable-ipv6
else
IRSSI_CONFIGURE_OPTIONS+=--enable-ipv6
endif
IRSSI_CONFLICTS=
#
# IRSSI_IPK_VERSION should be incremented when the ipk changes.
#
IRSSI_IPK_VERSION=1
#
# IRSSI_CONFFILES should be a list of user-editable files
#IRSSI_CONFFILES=/opt/etc/irssi.conf /opt/etc/init.d/SXXirssi
#
# IRSSI_PATCHES should list any patches, in the the order in
# which they should be applied to the source code.
#
IRSSI_PATCHES=$(IRSSI_SOURCE_DIR)/configure.in.patch \
$(IRSSI_SOURCE_DIR)/src-perl-Makefile.in.patch \
#
# If the compilation of the package requires additional
# compilation or linking flags, then list them here.
#
IRSSI_CPPFLAGS=-I$(STAGING_INCLUDE_DIR)/glib-2.0 -I$(STAGING_LIB_DIR)/glib-2.0/include
IRSSI_LDFLAGS=
IRSSI_PERL_CFLAGS=-fomit-frame-pointer -I$(STAGING_LIB_DIR)/$(PERL_LIB_CORE_DIR)
IRSSI_PERL_LDFLAGS=-Wl,-rpath,/opt/lib/$(PERL_LIB_CORE_DIR) \
-L$(STAGING_LIB_DIR)/$(PERL_LIB_CORE_DIR) \
-L/opt/lib/perl5/$(PERL_VERSION)/$(PERL_ARCH)/CORE \
-lperl -lnsl -ldl -lm -lcrypt -lutil -lc -lgcc_s \
IRSSI_PERL_LDFLAGS += $(if $(filter 5.8, $(PERL_MAJOR_VER)), \
$(STAGING_LIB_DIR)/perl5/$(PERL_VERSION)/$(PERL_ARCH)/auto/DynaLoader/DynaLoader.a,)
#
# IRSSI_BUILD_DIR is the directory in which the build is done.
# IRSSI_SOURCE_DIR is the directory which holds all the
# patches and ipkg control files.
# IRSSI_IPK_DIR is the directory in which the ipk is built.
# IRSSI_IPK is the name of the resulting ipk files.
#
# You should not change any of these variables.
#
IRSSI_BUILD_DIR=$(BUILD_DIR)/irssi
IRSSI_SOURCE_DIR=$(SOURCE_DIR)/irssi
IRSSI_IPK_DIR=$(BUILD_DIR)/irssi-$(IRSSI_VERSION)-ipk
IRSSI_IPK=$(BUILD_DIR)/irssi_$(IRSSI_VERSION)-$(IRSSI_IPK_VERSION)_$(TARGET_ARCH).ipk
IRSSI-DEV_IPK_DIR=$(BUILD_DIR)/irssi-dev-$(IRSSI_VERSION)-ipk
IRSSI-DEV_IPK=$(BUILD_DIR)/irssi-dev_$(IRSSI_VERSION)-$(IRSSI_IPK_VERSION)_$(TARGET_ARCH).ipk
#
# This is the dependency on the source code. If the source is missing,
# then it will be fetched from the site using wget.
#
$(DL_DIR)/$(IRSSI_SOURCE):
$(WGET) -P $(@D) $(IRSSI_SITE)/$(@F) || \
$(WGET) -P $(@D) $(SOURCES_NLO_SITE)/$(@F)
#
# The source code depends on it existing within the download directory.
# This target will be called by the top level Makefile to download the
# source code's archive (.tar.gz, .bz2, etc.)
#
irssi-source: $(DL_DIR)/$(IRSSI_SOURCE) $(IRSSI_PATCHES)
#
# This target unpacks the source code in the build directory.
# If the source archive is not .tar.gz or .tar.bz2, then you will need
# to change the commands here. Patches to the source code are also
# applied in this target as required.
#
# This target also configures the build within the build directory.
# Flags such as LDFLAGS and CPPFLAGS should be passed into configure
# and NOT $(MAKE) below. Passing it to configure causes configure to
# correctly BUILD the Makefile with the right paths, where passing it
# to Make causes it to override the default search paths of the compiler.
#
# If the compilation of the package requires other packages to be staged
# first, then do that first (e.g. "$(MAKE) <bar>-stage <baz>-stage").
#
# If the package uses GNU libtool, you should invoke $(PATCH_LIBTOOL) as
# shown below to make various patches to it.
#
$(IRSSI_BUILD_DIR)/.configured: $(DL_DIR)/$(IRSSI_SOURCE) $(IRSSI_PATCHES) make/irssi.mk
$(MAKE) glib-stage ncurses-stage openssl-stage
ifneq (,$(filter perl, $(PACKAGES)))
$(MAKE) perl-stage
endif
rm -rf $(BUILD_DIR)/$(IRSSI_DIR) $(@D)
$(IRSSI_UNZIP) $(DL_DIR)/$(IRSSI_SOURCE) | tar -C $(BUILD_DIR) -xvf -
if test -n "$(IRSSI_PATCHES)" ; \
then cat $(IRSSI_PATCHES) | \
patch -bd $(BUILD_DIR)/$(IRSSI_DIR) -p1 ; \
fi
if test "$(BUILD_DIR)/$(IRSSI_DIR)" != "$(@D)" ; \
then mv $(BUILD_DIR)/$(IRSSI_DIR) $(@D) ; \
fi
autoreconf -vif $(@D)
(cd $(@D); \
$(TARGET_CONFIGURE_OPTS) \
CPPFLAGS="$(STAGING_CPPFLAGS) $(IRSSI_CPPFLAGS)" \
LDFLAGS="$(STAGING_LDFLAGS) $(IRSSI_LDFLAGS)" \
ac_cv_path_perlpath=$(PERL_HOSTPERL) \
PERL_CFLAGS="$(STAGING_CPPFLAGS) $(IRSSI_CPPFLAGS) $(IRSSI_PERL_CFLAGS)" \
PERL_LDFLAGS="$(STAGING_LDFLAGS) $(IRSSI_LDFLAGS) $(IRSSI_PERL_LDFLAGS)" \
PKG_CONFIG_PATH=$(STAGING_LIB_DIR)/pkgconfig \
./configure \
--build=$(GNU_HOST_NAME) \
--host=$(GNU_TARGET_NAME) \
--target=$(GNU_TARGET_NAME) \
--prefix=/opt \
--disable-nls \
$(IRSSI_CONFIGURE_OPTIONS) \
--with-ncurses=$(STAGING_PREFIX) \
--with-bot \
--without-gc \
--with-proxy \
--enable-ssl \
--disable-glibtest \
--with-glib-prefix=$(STAGING_PREFIX) \
--disable-static \
--enable-shared \
)
ifneq (,$(filter perl, $(PACKAGES)))
for i in common irc ui textui; do \
(cd $(IRSSI_BUILD_DIR)/src/perl/$$i; \
CPPFLAGS="$(STAGING_CPPFLAGS)" \
LDFLAGS="$(STAGING_LDFLAGS)" \
PERL5LIB="$(STAGING_DIR)/opt/lib/perl5/site_perl" \
$(PERL_HOSTPERL) Makefile.PL \
$(TARGET_CONFIGURE_OPTS) \
PREFIX=/opt \
) \
done
endif
$(PATCH_LIBTOOL) $(@D)/libtool
touch $@
irssi-unpack: $(IRSSI_BUILD_DIR)/.configured
#
# This builds the actual binary.
#
$(IRSSI_BUILD_DIR)/.built: $(IRSSI_BUILD_DIR)/.configured
rm -f $@
ifneq (,$(filter perl, $(PACKAGES)))
for i in common irc ui textui; do \
$(MAKE) -C $(@D)/src/perl/$$i \
$(TARGET_CONFIGURE_OPTS) \
CPPFLAGS="$(STAGING_CPPFLAGS)" \
LDFLAGS="$(STAGING_LDFLAGS)" \
$(PERL_INC) \
PERL5LIB="$(STAGING_DIR)/opt/lib/perl5/site_perl" \
; \
done
endif
$(MAKE) -C $(@D) GLIB_CFLAGS=""
touch $@
#
# This is the build convenience target.
#
irssi: $(IRSSI_BUILD_DIR)/.built
#
# If you are building a library, then you need to stage it too.
#
$(IRSSI_BUILD_DIR)/.staged: $(IRSSI_BUILD_DIR)/.built
rm -f $@
$(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
touch $@
irssi-stage: $(IRSSI_BUILD_DIR)/.staged
#
# This rule creates a control file for ipkg. It is no longer
# necessary to create a seperate control file under sources/irssi
#
$(IRSSI_IPK_DIR)/CONTROL/control:
@install -d $(@D)
@rm -f $@
@echo "Package: irssi" >>$@
@echo "Architecture: $(TARGET_ARCH)" >>$@
@echo "Priority: $(IRSSI_PRIORITY)" >>$@
@echo "Section: $(IRSSI_SECTION)" >>$@
@echo "Version: $(IRSSI_VERSION)-$(IRSSI_IPK_VERSION)" >>$@
@echo "Maintainer: $(IRSSI_MAINTAINER)" >>$@
@echo "Source: $(IRSSI_SITE)/$(IRSSI_SOURCE)" >>$@
@echo "Description: $(IRSSI_DESCRIPTION)" >>$@
@echo "Depends: $(IRSSI_DEPENDS)" >>$@
@echo "Suggests: $(IRSSI_SUGGESTS)" >>$@
@echo "Conflicts: $(IRSSI_CONFLICTS)" >>$@
$(IRSSI-DEV_IPK_DIR)/CONTROL/control:
@install -d $(@D)
@rm -f $@
@echo "Package: irssi-dev" >>$@
@echo "Architecture: $(TARGET_ARCH)" >>$@
@echo "Priority: $(IRSSI_PRIORITY)" >>$@
@echo "Section: $(IRSSI_SECTION)" >>$@
@echo "Version: $(IRSSI_VERSION)-$(IRSSI_IPK_VERSION)" >>$@
@echo "Maintainer: $(IRSSI_MAINTAINER)" >>$@
@echo "Source: $(IRSSI_SITE)/$(IRSSI_SOURCE)" >>$@
@echo "Description: irssi dev files" >>$@
@echo "Depends: $(IRSSI_DEPENDS)" >>$@
@echo "Suggests: $(IRSSI_SUGGESTS)" >>$@
@echo "Conflicts: $(IRSSI_CONFLICTS)" >>$@
#
# This builds the IPK file.
#
# Binaries should be installed into $(IRSSI_IPK_DIR)/opt/sbin or $(IRSSI_IPK_DIR)/opt/bin
# (use the location in a well-known Linux distro as a guide for choosing sbin or bin).
# Libraries and include files should be installed into $(IRSSI_IPK_DIR)/opt/{lib,include}
# Configuration files should be installed in $(IRSSI_IPK_DIR)/opt/etc/irssi/...
# Documentation files should be installed in $(IRSSI_IPK_DIR)/opt/doc/irssi/...
# Daemon startup scripts should be installed in $(IRSSI_IPK_DIR)/opt/etc/init.d/S??irssi
#
# You may need to patch your application to make it use these locations.
#
$(IRSSI_IPK) $(IRSSI-DEV_IPK): $(IRSSI_BUILD_DIR)/.built
rm -rf $(IRSSI_IPK_DIR) $(BUILD_DIR)/irssi_*_$(TARGET_ARCH).ipk
rm -rf $(IRSSI-DEV_IPK_DIR) $(BUILD_DIR)/irssi-dev_*_$(TARGET_ARCH).ipk
$(MAKE) -C $(IRSSI_BUILD_DIR) DESTDIR=$(IRSSI_IPK_DIR) install-strip
install -d $(IRSSI_IPK_DIR)/opt/etc/
# install -m 644 $(IRSSI_SOURCE_DIR)/irssi.conf $(IRSSI_IPK_DIR)/opt/etc/irssi.conf
# install -d $(IRSSI_IPK_DIR)/opt/etc/init.d
# install -m 755 $(IRSSI_SOURCE_DIR)/rc.irssi $(IRSSI_IPK_DIR)/opt/etc/init.d/SXXirssi
ifneq (,$(filter perl, $(PACKAGES)))
(cd $(IRSSI_IPK_DIR)/opt/lib/perl5 ; \
find . -name '*.so' -exec chmod +w {} \; ; \
find . -name '*.so' -exec $(STRIP_COMMAND) {} \; ; \
find . -name '*.so' -exec chmod -w {} \; ; \
)
mv $(IRSSI_IPK_DIR)/opt/lib/perl5/$(PERL_VERSION)/$(PERL_ARCH)/perllocal.pod \
$(IRSSI_IPK_DIR)/opt/lib/perl5/$(PERL_VERSION)/$(PERL_ARCH)/perllocal.pod.irssi
endif
$(MAKE) $(IRSSI_IPK_DIR)/CONTROL/control
install -d $(IRSSI-DEV_IPK_DIR)/opt
mv $(IRSSI_IPK_DIR)/opt/include $(IRSSI-DEV_IPK_DIR)/opt/
$(MAKE) $(IRSSI-DEV_IPK_DIR)/CONTROL/control
# install -m 755 $(IRSSI_SOURCE_DIR)/postinst $(IRSSI_IPK_DIR)/CONTROL/postinst
# install -m 755 $(IRSSI_SOURCE_DIR)/prerm $(IRSSI_IPK_DIR)/CONTROL/prerm
echo $(IRSSI_CONFFILES) | sed -e 's/ /\n/g' > $(IRSSI_IPK_DIR)/CONTROL/conffiles
cd $(BUILD_DIR); $(IPKG_BUILD) $(IRSSI_IPK_DIR)
cd $(BUILD_DIR); $(IPKG_BUILD) $(IRSSI-DEV_IPK_DIR)
#
# This is called from the top level makefile to create the IPK file.
#
irssi-ipk: $(IRSSI_IPK) $(IRSSI-DEV_IPK)
#
# This is called from the top level makefile to clean all of the built files.
#
irssi-clean:
rm -f $(IRSSI_BUILD_DIR)/.built
-$(MAKE) -C $(IRSSI_BUILD_DIR) clean
#
# This is called from the top level makefile to clean all dynamically created
# directories.
#
irssi-dirclean:
rm -rf $(BUILD_DIR)/$(IRSSI_DIR) $(IRSSI_BUILD_DIR)
rm -rf $(IRSSI_IPK_DIR) $(IRSSI_IPK)
rm -rf $(IRSSI-DEV_IPK_DIR) $(IRSSI-DEV_IPK)
#
# Some sanity check for the package.
#
irssi-check: $(IRSSI_IPK) $(IRSSI-DEV_IPK)
perl scripts/optware-check-package.pl --target=$(OPTWARE_TARGET) $^do tego dwa patche
http://svn.nslu2-linux.org/svnroot/optw … e.in.patch
--- irssi/configure.in.orig 2007-04-25 11:13:56.000000000 -0700
+++ irssi/configure.in 2007-04-26 16:34:17.000000000 -0700
@@ -483,13 +483,8 @@
if test ! -s conftest; then
AC_MSG_RESULT([no, error compiling test program])
else
- status="`./conftest`"
- if test "x$status" = "xok"; then
DYNLIB_MODULES=yes
AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no, error running: $status])
- fi
fi
fi
rm -rf conftest conftest.* libconftest.* .libs
@@ -549,7 +544,9 @@
if test -z "$perlpath"; then
perl_check_error="perl binary not found"
else
+ if test -z "$PERL_CFLAGS"; then
PERL_CFLAGS=`$perlpath -MExtUtils::Embed -e ccopts 2>/dev/null`
+ fi
fi
if test "x$ac_cv_prog_gcc" = "xyes" -a -z "`echo $host_os|grep 'bsd\|linux'`"; then
@@ -572,7 +569,9 @@
AC_MSG_RESULT([not found, building without Perl])
want_perl=no
else
+ if test -z "$PERL_LDFLAGS"; then
PERL_LDFLAGS=`$perlpath -MExtUtils::Embed -e ldopts 2>/dev/null`
+ fi
dnl * Perl 5.004 and older use perl_xxx variables while
dnl * later use PL_perl_xxx variables ..http://svn.nslu2-linux.org/svnroot/optw … e.in.patch
--- irssi/src/perl/Makefile.in.orig 2005-12-11 14:48:03.000000000 -0800
+++ irssi/src/perl/Makefile.in 2006-10-10 22:00:48.000000000 -0700
@@ -463,7 +463,8 @@
if [ ! -f Makefile ]; then \
$(perlpath) Makefile.PL $(PERL_MM_PARAMS); \
fi && \
- ($(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) $(CFLAGS)" $(PERL_EXTRA_OPTS) || \
+ ($(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) $(CFLAGS)" $(PERL_EXTRA_OPTS) \
+ CCLD="$(CC)" LDFLAGS="$(PERL_LINK_FLAGS)" || \
$(MAKE) CC="$(CC)" CCFLAGS="$(PERL_CFLAGS) $(CFLAGS)" $(PERL_EXTRA_OPTS)) && \
cd ..; \
doneMiędzy innymi dzięki niemu doszedłem do tego że trzeba podać zależności i wskazać ścieżkę do perla
30 DEPENDS:=+glib2 +libncurses +libpthread +perl +perlbase-base +perlbase-config +perlbase-essential +perlbase-symbol +librt +libssp
63 CONFIGURE_ARGS += \
64 --with-perl=yes \
65 --with-glib-prefix="$(STAGING_DIR)/usr" \
66 --with-textui \
68 --without-terminfo \
68 --without-bot \
69 --disable-proxy \
70 ac_cv_path_perlpath="$(STAGING_DIR_HOST)/usr/bin/perl" \dodać dowiązanie
sudo ln -s ~/barrier_breaker/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib/perl5/5.20/CORE/libperl.so ~/barrier_breaker/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib/libperl.sooraz na routerze
ln -s /usr/lib/perl5/5.20/CORE/libperl.so /usr/lib/libperl.sopo tym kompilacja przechodzi i irssi ładuje moduł perla

ale skrypty nadal nie dają się uruchomić, pokazuje brak pliku 'Irssi.pm'

takiego pliku na routerze nie ma, ale w katalogu kompilacji jest
~/barrier_breaker$ find . -name 'Irssi.pm'
./build_dir/target-mips_34kc_uClibc-0.9.33.2/irssi-ssl/irssi-0.8.17/src/perl/common/Irssi.pm
./build_dir/target-mips_34kc_uClibc-0.9.33.2/irssi-ssl/irssi-0.8.17/src/perl/common/blib/lib/Irssi.pm
./build_dir/target-mips_34kc_uClibc-0.9.33.2/irssi-ssl/irssi-0.8.17/ipkg-install/usr/lib/perl5/x86_64-linux/Irssi.pmI tu utknąłem w martwym punkcie :) Prawdopodobnie pliki potrzebne do obsługi perla nie są w ogóle pakowane do paczki .ipk.
Pomocy, jak ruszyć z tym dalej?
Zapakuj brakujący plik. Makefile ma sekcję install która kopiuje pliki które mają znaleźć się w paczcie. Więc dodaj tam kopiowanie tego co chcesz dodatkowo.
Kilka rzeczy dopisałem i pomaga
define Package/irssi/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/$(PKG_NAME)
$(INSTALL_DIR) $(1)/etc
$(CP) $(PKG_INSTALL_DIR)/etc/irssi.conf $(1)/etc/irssi.conf
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/share
$(CP) $(PKG_INSTALL_DIR)/usr/share/* $(1)/usr/share/
endefręcznie przeniosłem pliki które lądują w złym katalogu
mv /usr/lib/perl5/x86_64-linux /usr/lib/perl5/x86_64-linux-gnu-thread-multidodałem też jedną zależność
DEPENDS:=+glib2 +libncurses +libpthread +perl +perlbase-base +perlbase-config +perlbase-essential +perlbase-symbol +perlbase-dynaloader +librt +libsspa teraz mam taki komunikat
Pierwszy wynik z google mówi o braku pliku "Irssi.so" i to by się zgadzało bo nie mam go na routerze ani w katalogu kompilacji. Podpatrzyłem w ubuntu plik leży w
/usr/lib/x86_64-linux-gnu/perl5/5.20/auto/Irssi/Irssi.soJak się domyślam plik "Irssi.so" nie powstaje przy kompilacji i to jest problemem, jakieś pomysły jak to naprawić?
Zrobić tak żeby się skompilowało. To z komputera nie możesz przenieść bo to nie ta architektura. Moduł do perla mysisz po prostu skompilować.
W INSTALL mamy wskazówki
https://github.com/irssi/irssi/blob/master/INSTALL
Perl problems
-------------
Perl support generates most of the problems. There's quite a many
things that can go wrong:
- Compiling fails if you compile irssi with GCC in a system that has
perl compiled with some other C compiler. Very common problem with
non-Linux/BSD systems. You'll need to edit src/perl/*/Makefile files
and remove the parameters that gcc doesn't like. Mostly you'll just
need to keep the -I and -D parameters and add -fPIC.
- If there's any weird crashing at startup, you might have older irssi's
perl libraries installed somewhere, and you should remove those.
- Dynamic libraries don't want to work with some systems, so if your
system complains about some missing symbol in Irssi.so file, configure
irssi with --with-perl-staticlib option (NOT same as --with-perl=static).
- If configure complains that it doesn't find some perl stuff, you're
probably missing libperl.so or libperl.a. In debian, you'll need to do
apt-get install libperl-devi wg tego zrobiłem
CONFIGURE_ARGS += \
--with-perl=yes \
--with-perl-staticlib \
--with-glib-prefix="$(STAGING_DIR)/usr" \
--with-textui \
--without-terminfo \
--without-bot \
--disable-proxy \
ac_cv_path_perlpath="$(STAGING_DIR_HOST)/usr/bin/perl"wcześniej trochę się rozpędziłem z dodawaniem plików, katalog "auto" też można usunąć
define Package/irssi/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/$(PKG_NAME)
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
find $(1)/usr/lib/ -name "auto" | xargs rm -rf
endefi najważniejsze działa
Jedyne co zauważyłem to Irssi wyświetla ostrzeżenia po wyjściu
NO WINDOWS: -!- Irssi: Invalid charset: CP1252
GLib warning: signal_free(script destroyed) : signal still has 3 references:
GLib warning: - module 'perl/core' function 0x475a91
GLib warning: - module 'perl/core' function 0x46d651
GLib warning: - module 'perl/core' function 0x4679bdale to znany problem
https://github.com/irssi/irssi/issues/201
I pytanie, pliki Irssi.pm itp. powinny wylądować w katalogu perla? Jak je tam przenieść bez podawania ścieżek na sztywno? Przydało by się coś bardziej uniwersalnego niż:
$(CP) $(PKG_INSTALL_DIR)/usr/lib/perl5/i686-linux/* $(1)/usr/lib/perl5/5.20/żeby nie trzeba było tego robić ręcznie po instalacji.
Przecież tak możesz zrobić ![]()
Podsumowując całość wygląda tak
#
# Copyright (C) 2006-2011 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=irssi
PKG_VERSION:=0.8.17
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://irssi.org/files/
PKG_MD5SUM:=ecf64be47978d89a742b435a81cb47db
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
define Package/irssi/Default
SUBMENU:=Instant Messaging
SECTION:=net
CATEGORY:=Network
DEPENDS:=+glib2 +libncurses +libpthread +perl +perlbase-base +perlbase-config +perlbase-dynaloader +perlbase-essential +perlbase-symbol +librt +libssp
TITLE:=Console IRC client
MAINTAINER:=Peter Wagner <tripolar@gmx.at>
URL:=http://irssi.org/
endef
define Package/irssi/Default/description
Irssi is a terminal based IRC client for UNIX systems.
endef
define Package/irssi
$(call Package/irssi/Default)
TITLE+= (with OpenSSL support)
DEPENDS+= +libopenssl
VARIANT:=ssl
endef
define Package/irssi/description
$(call Package/irssi/Default/description)
This package is built with OpenSSL support.
endef
define Package/irssi-nossl
$(call Package/irssi/Default)
TITLE+= (without OpenSSL support)
VARIANT:=nossl
endef
define Package/irssi-nossl/description
$(call Package/irssi/Default/description)
This package is built without OpenSSL support.
endef
CONFIGURE_ARGS += \
--with-perl=yes \
--with-perl-staticlib \
--with-glib-prefix="$(STAGING_DIR)/usr" \
--with-textui \
--without-terminfo \
--without-bot \
--disable-proxy \
ac_cv_path_perlpath="$(STAGING_DIR_HOST)/usr/bin/perl"
EXTRA_CFLAGS+=$(TARGET_CPPFLAGS)
EXTRA_LDFLAGS+=-lncurses
ifeq ($(BUILD_VARIANT),ssl)
CONFIGURE_ARGS += \
--with-ssl="$(STAGING_DIR)/usr"
endif
ifeq ($(BUILD_VARIANT),nossl)
CONFIGURE_ARGS += \
--without-ssl \
--disable-ssl
endif
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/irssi
$(CP) $(PKG_INSTALL_DIR)/usr/include/irssi/* $(1)/usr/include/irssi/
endef
define Package/irssi/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/$(PKG_NAME)
$(INSTALL_DIR) $(1)/usr/lib/perl5/5.20/
$(CP) -r $(PKG_INSTALL_DIR)/usr/lib/perl5/i686-linux/* $(1)/usr/lib/perl5/5.20/
rm -rf $(1)/usr/lib/perl5/5.20/auto/
endef
Package/irssi-nossl/install = $(Package/irssi/install)
$(eval $(call BuildPackage,irssi))
$(eval $(call BuildPackage,irssi-nossl))udało się to skompilować na Ubuntu 32-bit + BB, paczka waży ~290KiB i zjada ~11MiB ramu :)
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → IRSSI z obsługą skryptów
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc