1

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?

2

Odp: IRSSI z obsługą skryptów

A ten w paczkach nie ma? (pytam się, nie wiem)

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: IRSSI z obsługą skryptów

Ten w repo normalnie je obsługuje.

4

Odp: IRSSI z obsługą skryptów

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.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: IRSSI z obsługą skryptów

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

6 (edytowany przez KeFaS 2009-09-18 00:20:31)

Odp: IRSSI z obsługą skryptów

Rzeczywiście, mój błąd, bo w sumie nie używam skryptów, wystarczy mi autosendcmd w configu.

7

Odp: IRSSI z obsługą skryptów

Podbijam. Jest szansa na irssi z obsługą skryptów?

Home: ZyXEL NBG6817 (OpenWrt)
NAS: HP ProLiant MicroServer Gen8 E3-1265L V2, 16 GB (PVE)

8

Odp: 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..

RB760iGS + RB260GS / Ryzen 5 2660 / 16G DDR4 / MiniITX - Inea 1G (https://i.imgur.com/TLbJVDw.png)
RB951-2HnD / Celeron J1900 / 4G DDR3 / MiniITX - Satpol 100M

9 (edytowany przez mavcin 2016-01-11 20:10:55)

Odp: IRSSI z obsługą skryptów

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 ..; \
     done

Mię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.so

oraz na routerze

ln -s /usr/lib/perl5/5.20/CORE/libperl.so /usr/lib/libperl.so

po tym kompilacja przechodzi i irssi ładuje moduł perla

http://i.imgur.com/Tkrm80Y.png

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

http://i.imgur.com/hIGhIn0.png

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.pm

I 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?

WNDR3800 OpenWrt 19.07.7 / WNDR3700v2 17.01.6 / TL-WR741ND v4 17.01.6

10

Odp: IRSSI z obsługą skryptów

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.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11 (edytowany przez mavcin 2015-09-21 20:29:06)

Odp: IRSSI z obsługą skryptów

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/
endef

rę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-multi

dodałem też jedną zależność

DEPENDS:=+glib2 +libncurses +libpthread +perl +perlbase-base +perlbase-config +perlbase-essential +perlbase-symbol +perlbase-dynaloader +librt +libssp

a teraz mam taki komunikat
http://i.imgur.com/NqSwKOO.png


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.so

Jak się domyślam plik "Irssi.so" nie powstaje przy kompilacji i to jest problemem, jakieś pomysły jak to naprawić?

WNDR3800 OpenWrt 19.07.7 / WNDR3700v2 17.01.6 / TL-WR741ND v4 17.01.6

12

Odp: IRSSI z obsługą skryptów

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ć.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13

Odp: IRSSI z obsługą skryptów

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-dev

i 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
endef

i najważniejsze działa smile 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 0x4679bd

ale 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.

WNDR3800 OpenWrt 19.07.7 / WNDR3700v2 17.01.6 / TL-WR741ND v4 17.01.6

14

Odp: IRSSI z obsługą skryptów

Przecież tak możesz zrobić smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: IRSSI z obsługą skryptów

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 :)

WNDR3800 OpenWrt 19.07.7 / WNDR3700v2 17.01.6 / TL-WR741ND v4 17.01.6