[Pkg-silc-commits] [SCM] terminal based SILC client branch, master, updated. debian/1.1.7-1

Jérémy Bobbio lunar at debian.org
Fri Jun 26 15:28:13 UTC 2009


The following commit has been merged in the master branch:
commit b22c00d69f663586e4e2c99d645ee31c48365a4f
Author: Jérémy Bobbio <lunar at debian.org>
Date:   Fri Jun 26 14:36:55 2009 +0200

    Use a custom build system for irssi SILC plugin
    
    Upstream uses an embedded code copy to build the irssi SILC plugin.  As this
    embedded code copy is not updated often against new irssi version, the plugin
    is currently incompatible with the versian irssi has in Debian (0.8.13).
    
    The custom build system is mostly contained in debian/rules, except for the
    Perl extension which uses an extra debian/Makefile.PL.  Installation of the
    binaries is done with dh_install.
    
    This custom build system allows the plugin to be built only using irssi-dev,
    except for Perl extension headers.  Compatibility with further new irssi
    version is probably only a binNMU away now.
    
    Build-Depends on ncurses-dev and autotools-dev are no longer needed.
    
    The build system is mostly inspired by the one used by irssi-plugin-xmpp,
    written by Colin Didier.
    
    (Closes: #448186, #52208)

diff --git a/debian/Makefile.PL b/debian/Makefile.PL
new file mode 100644
index 0000000..6ae021c
--- /dev/null
+++ b/debian/Makefile.PL
@@ -0,0 +1,7 @@
+use ExtUtils::MakeMaker;
+
+WriteMakefile('NAME' => 'Irssi::Silc',
+	      'LIBS' => '',
+	      'OBJECT' => '$(O_FILES)',
+	      'TYPEMAPS' => ['../common/typemap'],
+	      'VERSION_FROM' => 'Silc.pm');
diff --git a/debian/changelog b/debian/changelog
index e063362..11cd106 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,6 +11,9 @@ silc-client (1.1.7-1) UNRELEASED; urgency=low
   * Since Debian Policy 3.8.0, embedded code copy are officially not allowed in
     Debian anymore.  As it was a minor fork of irssi, the silc package
     providing the official SILC client has been discontinued.
+  * Use a custom build system for the irssi plugin.  We now Build-Depends on
+    irssi-dev instead of relying on irssi embedded code copy.
+    (Closes: #448186, #522080)
 
   [ Daniel Kahn Gillmor ]
   * cleaned up debian/control: thanks, Lintian!
diff --git a/debian/control b/debian/control
index 271c62d..10d6dcf 100644
--- a/debian/control
+++ b/debian/control
@@ -4,7 +4,7 @@ Priority: optional
 Maintainer: Debian SILC Team <pkg-silc-devel at lists.alioth.debian.org>
 Uploaders: Jérémy Bobbio <lunar at debian.org>, Micah Anderson <micah at debian.org>
 Standards-Version: 3.8.0
-Build-Depends: debhelper (>> 5), libglib2.0-dev, ncurses-dev, autotools-dev, libsilc-dev, libperl-dev
+Build-Depends: debhelper (>> 5), libglib2.0-dev, irssi-dev, libsilc-dev, libperl-dev
 Homepage: http://www.silcnet.org/software/users/client/
 Vcs-Git: git://git.debian.org/pkg-silc/silc-client.git
 Vcs-Browser: http://git.debian.org/?p=pkg-silc/silc-client.git
diff --git a/debian/irssi-plugin-silc.install b/debian/irssi-plugin-silc.install
index d350d2b..5b76a62 100644
--- a/debian/irssi-plugin-silc.install
+++ b/debian/irssi-plugin-silc.install
@@ -1,5 +1,93 @@
-usr/share/irssi/scripts
-usr/share/irssi/themes
-usr/share/irssi/help
-usr/lib/perl5
-usr/lib/irssi/modules/*.so*
+apps/irssi/scripts/silc.pl usr/share/irssi/scripts
+apps/irssi/src/silc/core/libsilc_core.so usr/lib/irssi/modules
+apps/irssi/src/fe-common/silc/libfe_silc.so usr/lib/irssi/modules
+apps/irssi/docs/help/action usr/share/irssi/help/silc
+apps/irssi/docs/help/admin usr/share/irssi/help/silc
+apps/irssi/docs/help/alias usr/share/irssi/help/silc
+apps/irssi/docs/help/attr usr/share/irssi/help/silc
+apps/irssi/docs/help/away usr/share/irssi/help/silc
+apps/irssi/docs/help/ban usr/share/irssi/help/silc
+apps/irssi/docs/help/beep usr/share/irssi/help/silc
+apps/irssi/docs/help/bind usr/share/irssi/help/silc
+apps/irssi/docs/help/cat usr/share/irssi/help/silc
+apps/irssi/docs/help/cd usr/share/irssi/help/silc
+apps/irssi/docs/help/channel usr/share/irssi/help/silc
+apps/irssi/docs/help/clear usr/share/irssi/help/silc
+apps/irssi/docs/help/close usr/share/irssi/help/silc
+apps/irssi/docs/help/cmode usr/share/irssi/help/silc
+apps/irssi/docs/help/connect usr/share/irssi/help/silc
+apps/irssi/docs/help/cumode usr/share/irssi/help/silc
+apps/irssi/docs/help/cycle usr/share/irssi/help/silc
+apps/irssi/docs/help/date usr/share/irssi/help/silc
+apps/irssi/docs/help/dehilight usr/share/irssi/help/silc
+apps/irssi/docs/help/detach usr/share/irssi/help/silc
+apps/irssi/docs/help/disconnect usr/share/irssi/help/silc
+apps/irssi/docs/help/echo usr/share/irssi/help/silc
+apps/irssi/docs/help/eval usr/share/irssi/help/silc
+apps/irssi/docs/help/exec usr/share/irssi/help/silc
+apps/irssi/docs/help/file usr/share/irssi/help/silc
+apps/irssi/docs/help/format usr/share/irssi/help/silc
+apps/irssi/docs/help/getkey usr/share/irssi/help/silc
+apps/irssi/docs/help/help usr/share/irssi/help/silc
+apps/irssi/docs/help/hilight usr/share/irssi/help/silc
+apps/irssi/docs/help/ignore usr/share/irssi/help/silc
+apps/irssi/docs/help/info usr/share/irssi/help/silc
+apps/irssi/docs/help/invite usr/share/irssi/help/silc
+apps/irssi/docs/help/invitelist usr/share/irssi/help/silc
+apps/irssi/docs/help/join usr/share/irssi/help/silc
+apps/irssi/docs/help/key usr/share/irssi/help/silc
+apps/irssi/docs/help/kick usr/share/irssi/help/silc
+apps/irssi/docs/help/kickban usr/share/irssi/help/silc
+apps/irssi/docs/help/kill usr/share/irssi/help/silc
+apps/irssi/docs/help/knockout usr/share/irssi/help/silc
+apps/irssi/docs/help/lastlog usr/share/irssi/help/silc
+apps/irssi/docs/help/layout usr/share/irssi/help/silc
+apps/irssi/docs/help/levels usr/share/irssi/help/silc
+apps/irssi/docs/help/list usr/share/irssi/help/silc
+apps/irssi/docs/help/listkeys usr/share/irssi/help/silc
+apps/irssi/docs/help/load usr/share/irssi/help/silc
+apps/irssi/docs/help/log usr/share/irssi/help/silc
+apps/irssi/docs/help/me usr/share/irssi/help/silc
+apps/irssi/docs/help/mmsg usr/share/irssi/help/silc
+apps/irssi/docs/help/motd usr/share/irssi/help/silc
+apps/irssi/docs/help/msg usr/share/irssi/help/silc
+apps/irssi/docs/help/names usr/share/irssi/help/silc
+apps/irssi/docs/help/nick usr/share/irssi/help/silc
+apps/irssi/docs/help/notice usr/share/irssi/help/silc
+apps/irssi/docs/help/oper usr/share/irssi/help/silc
+apps/irssi/docs/help/part usr/share/irssi/help/silc
+apps/irssi/docs/help/perlflush usr/share/irssi/help/silc
+apps/irssi/docs/help/ping usr/share/irssi/help/silc
+apps/irssi/docs/help/query usr/share/irssi/help/silc
+apps/irssi/docs/help/quit usr/share/irssi/help/silc
+apps/irssi/docs/help/recode usr/share/irssi/help/silc
+apps/irssi/docs/help/reconnect usr/share/irssi/help/silc
+apps/irssi/docs/help/reload usr/share/irssi/help/silc
+apps/irssi/docs/help/rmreconns usr/share/irssi/help/silc
+apps/irssi/docs/help/rmrejoins usr/share/irssi/help/silc
+apps/irssi/docs/help/save usr/share/irssi/help/silc
+apps/irssi/docs/help/sconnect usr/share/irssi/help/silc
+apps/irssi/docs/help/script usr/share/irssi/help/silc
+apps/irssi/docs/help/scrollback usr/share/irssi/help/silc
+apps/irssi/docs/help/server usr/share/irssi/help/silc
+apps/irssi/docs/help/set usr/share/irssi/help/silc
+apps/irssi/docs/help/shutdown usr/share/irssi/help/silc
+apps/irssi/docs/help/silc usr/share/irssi/help/silc
+apps/irssi/docs/help/silcnet usr/share/irssi/help/silc
+apps/irssi/docs/help/silcoper usr/share/irssi/help/silc
+apps/irssi/docs/help/smsg usr/share/irssi/help/silc
+apps/irssi/docs/help/stats usr/share/irssi/help/silc
+apps/irssi/docs/help/statusbar usr/share/irssi/help/silc
+apps/irssi/docs/help/toggle usr/share/irssi/help/silc
+apps/irssi/docs/help/topic usr/share/irssi/help/silc
+apps/irssi/docs/help/umode usr/share/irssi/help/silc
+apps/irssi/docs/help/unalias usr/share/irssi/help/silc
+apps/irssi/docs/help/unignore usr/share/irssi/help/silc
+apps/irssi/docs/help/unload usr/share/irssi/help/silc
+apps/irssi/docs/help/unquery usr/share/irssi/help/silc
+apps/irssi/docs/help/users usr/share/irssi/help/silc
+apps/irssi/docs/help/version usr/share/irssi/help/silc
+apps/irssi/docs/help/watch usr/share/irssi/help/silc
+apps/irssi/docs/help/whois usr/share/irssi/help/silc
+apps/irssi/docs/help/whowas usr/share/irssi/help/silc
+apps/irssi/docs/help/window usr/share/irssi/help/silc
diff --git a/debian/rules b/debian/rules
index 0e35909..1a2bce6 100755
--- a/debian/rules
+++ b/debian/rules
@@ -8,71 +8,118 @@
 DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
 
-CFLAGS = -g
+VERSION := $(shell dpkg-parsechangelog | \
+		sed -n -e 's/Version: \([^-]*\)-.*/\1/p')
+
+LDFLAGS = -shared
+CFLAGS = \
+	-g \
+	-W -ggdb -Wall \
+	-I/usr/include/irssi \
+	-I/usr/include/irssi/src \
+	-I/usr/include/irssi/src/core \
+	-I/usr/include/irssi/src/fe-common/core \
+	-Iapps/irssi/src \
+	-I$(SILC_CORE_DIR) \
+	-fPIC \
+	-DUOFF_T_LONG -DHAVE_CONFIG_H=1 -DSILC_PLUGIN=1 \
+	-DPACKAGE=\"silc-client\" -DVERSION=\"$(VERSION)\" \
+	$(shell pkg-config --cflags silc silcclient glib-2.0)
+PERL_INC = \
+	-I/usr/include/irssi \
+	-I/usr/include/irssi/src \
+	-I/usr/include/irssi/src/core \
+	-I/usr/include/irssi/src/fe-common/core \
+	-I$(CURDIR)/apps/irssi/src \
+	-I$(CURDIR)/$(SILC_CORE_DIR)
+PERL_CFLAGS = \
+	-DUOFF_T_LONG -DSILC_PLUGIN=1 \
+	$(shell pkg-config --cflags silc silcclient glib-2.0)
 
 ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
 	INSTALL_PROGRAM += -s
 endif
 
-configure-irssi-plugin: configure-irssi-plugin-stamp
-configure-irssi-plugin-stamp:
-	dh_testdir
-	-test -e configure-stamp -o -e build-stamp && \
-		$(MAKE) distclean && \
-		rm -f configure-stamp build-stamp
-	rm -f config.guess config.sub
-	ln -sf /usr/share/misc/config.guess
-	ln -sf /usr/share/misc/config.sub
-	./configure --prefix=/usr \
-		--mandir=\$${prefix}/share/man \
-		--docdir=\$${prefix}/share/doc/silc \
-		--enable-debug \
-		--host=$(DEB_HOST_GNU_TYPE) \
-		--build=$(DEB_BUILD_GNU_TYPE) \
-		--enable-ipv6 \
-		--without-silc-includes \
-		--enable-perl \
-		--with-perl-lib=vendor \
-		--with-silc-plugin \
-		--with-pic \
-		--without-pthreads \
-		CFLAGS="$(CFLAGS)"
-	touch configure-irssi-plugin-stamp
-
-build-irssi-plugin: build-irssi-plugin-stamp
-build-irssi-plugin-stamp: configure-irssi-plugin-stamp
-	dh_testdir
-	$(MAKE)
-	touch build-irssi-plugin-stamp
+SILC_CORE_DIR = apps/irssi/src/silc/core
+SILC_CORE_LIB = silc_core
+SILC_CORE_SRCS = \
+	clientutil.c \
+	silc-channels.c \
+	silc-core.c \
+	silc-nicklist.c \
+	silc-queries.c \
+	silc-servers.c \
+	silc-expandos.c \
+	silc-servers-reconnect.c \
+	silc-lag.c \
+	silc-chatnets.c \
+	silc-cmdqueue.c \
+	client_ops.c
+SILC_CORE_OBJS = $(addprefix $(SILC_CORE_DIR)/,$(subst .c,.o,$(SILC_CORE_SRCS)))
+SILC_CORE_LIBS = $(shell pkg-config --libs silc silcclient)
+
+FE_SILC_DIR = apps/irssi/src/fe-common/silc
+FE_SILC_LIB = fe_silc
+FE_SILC_SRCS = \
+	fe-common-silc.c \
+	fe-silc-channels.c \
+	fe-silc-messages.c \
+	fe-silc-queries.c \
+	fe-silcnet.c \
+	module-formats.c \
+	silc-modules.c
+FE_SILC_OBJS = $(addprefix $(FE_SILC_DIR)/,$(subst .c,.o,$(FE_SILC_SRCS)))
+FE_SILC_LIBS = $(shell pkg-config --libs glib-2.0)
+
+$(SILC_CORE_DIR)/lib$(SILC_CORE_LIB).so: $(SILC_CORE_OBJS)
+	$(CC) -o $@ $^ $(LDFLAGS) $(SILC_CORE_LIBS)
+
+$(FE_SILC_DIR)/lib$(FE_SILC_LIB).so: $(FE_SILC_OBJS)
+	$(CC) -o $@ $^ $(LDFLAGS) $(SILC_CORE_LIBS)
+
+apps/irssi/src/%.o: apps/irssi/src/%.c
+	$(CC) -o $@ -c $(CFLAGS) $<
+
+build-perl: build-perl-stamp
+build-perl-stamp:
+	cp $(CURDIR)/debian/Makefile.PL $(CURDIR)/apps/irssi/src/perl/silc
+	(cd $(CURDIR)/apps/irssi/src/perl/silc && \
+	 perl Makefile.PL \
+		INSTALLDIRS=vendor \
+		INC="$(PERL_INC)" CCFLAGS="$(PERL_CFLAGS)" && \
+	 $(MAKE))
+	touch build-perl-stamp
+
+build: build-perl-stamp $(SILC_CORE_DIR)/lib$(SILC_CORE_LIB).so $(FE_SILC_DIR)/lib$(FE_SILC_LIB).so
 
 clean:
 	dh_testdir
 	dh_testroot
-	rm -f config.guess config.sub
-	rm -f build-irssi-plugin-stamp configure-irssi-plugin-stamp
-	[ ! -f Makefile ] || $(MAKE) distclean
+	[ ! -f apps/irssi/src/perl/silc/Makefile ] || \
+		$(MAKE) -C apps/irssi/src/perl/silc distclean
+	rm -f apps/irssi/src/perl/silc/Makefile.PL
+	rm -f build-perl-stamp
+	rm -f $(SILC_CORE_OBJS)
+	rm -f $(SILC_CORE_DIR)/lib$(SILC_CORE_LIB).so
+	rm -f $(FE_SILC_OBJS)
+	rm -f $(FE_SILC_DIR)/lib$(FE_SILC_LIB).so
 	dh_clean
 
-install-irssi-plugin: build-irssi-plugin
-	dh_testdir
-	dh_testroot
-	dh_installdirs -pirssi-plugin-silc
-	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
-	dh_install -pirssi-plugin-silc --autodest --sourcedir=debian/tmp
-	dh_link -pirssi-plugin-silc
-	dh_installdocs -pirssi-plugin-silc
-
-install-irssi-plugin-dbg:
+install: build
 	dh_testdir
 	dh_testroot
-	dh_installdocs -pirssi-plugin-silc-dbg
+	dh_installdirs
+	$(MAKE) -C apps/irssi/src/perl/silc install \
+		DESTDIR=$(CURDIR)/debian/irssi-plugin-silc
+	dh_install
+	dh_installdocs
 
 # Build architecture-independent files here.
 binary-indep:
 	# We have nothing to do.
 
 # Build architecture-dependent files here.
-binary-arch: build-irssi-plugin install-irssi-plugin install-irssi-plugin-dbg
+binary-arch: build install
 	dh_testdir
 	dh_testroot
 	dh_installchangelogs ChangeLog
@@ -88,5 +135,4 @@ binary-arch: build-irssi-plugin install-irssi-plugin install-irssi-plugin-dbg
 	dh_builddeb
 
 binary: binary-indep binary-arch
-.PHONY: clean binary-indep binary-arch binary install \
-	build-irssi-plugin install-irssi-plugin configure-irssi-plugin
+.PHONY: clean binary-indep binary-arch binary build-perl install

-- 
terminal based SILC client



More information about the Pkg-silc-commits mailing list