[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#231472: patch to build a ssh-opensc package



tags 240077 patch
tags 231472 patch
thanks

And here's the patch. I basically kept the same rules file and just
added some makefile magic to make it compile box versions of the
packages. Let me know what you think/any problems.

-- 
Eric Dorland <eric.dorland@mail.mcgill.ca>
ICQ: #61138586, Jabber: hooty@jabber.com
1024D/16D970C6 097C 4861 9934 27A0 8E1C  2B0A 61E9 8ECF 16D9 70C6

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d- s++: a-- C+++ UL+++ P++ L++ E++ W++ N+ o K- w+ 
O? M++ V-- PS+ PE Y+ PGP++ t++ 5++ X+ R tv++ b+++ DI+ D+ 
G e h! r- y+ 
------END GEEK CODE BLOCK------
diff -ruN openssh-3.8p1/debian/control openssh-3.8p1.new/debian/control
--- openssh-3.8p1/debian/control	2004-05-02 23:43:35.000000000 -0400
+++ openssh-3.8p1.new/debian/control	2004-05-02 23:46:57.000000000 -0400
@@ -2,14 +2,15 @@
 Section: net
 Priority: standard
 Maintainer: Matthew Vernon <matthew@debian.org>
-Build-Depends: libwrap0-dev | libwrap-dev, zlib1g-dev | libz-dev, libssl-dev, libpam0g-dev | libpam-dev, libgnomeui-dev (>= 2.0.0) | libgnome-dev, groff, debhelper (>=1.1.17), sharutils
+Build-Depends: libwrap0-dev | libwrap-dev, zlib1g-dev | libz-dev, libssl-dev, libpam0g-dev | libpam-dev, libgnomeui-dev (>= 2.0.0) | libgnome-dev, groff, debhelper (>=1.1.17), sharutils, libopensc0-dev
 Standards-Version: 3.6.1
 Uploaders: Colin Watson <cjwatson@debian.org>
 
 Package: ssh
 Architecture: any
 Depends: ${shlibs:Depends}, ${debconf-depends}, ${pam-depends}, libpam-modules (>= 0.72-9), adduser (>= 3.9), dpkg (>= 1.9.0)
-Conflicts: ssh-nonfree (<<2), ssh-socks, ssh2, sftp, rsh-client (<<0.16.1-1)
+Conflicts: ssh-opensc, ssh-nonfree (<<2), ssh-socks, ssh2, sftp, rsh-client (<<0.16.1-1)
+Replaces: ssh-opensc
 Suggests: ssh-askpass, xbase-clients, dnsutils
 Provides: rsh-client
 Description: Secure rlogin/rsh/rcp replacement (OpenSSH)
@@ -32,6 +33,35 @@
  In some countries it may be illegal to use any encryption at all
  without a special permit.
 
+Package: ssh-opensc
+Architecture: any
+Priority: extra
+Depends: ${shlibs:Depends}, ${debconf-depends}, ${pam-depends}, libpam-modules (>= 0.72-9), adduser (>= 3.9), dpkg (>= 1.9.0)
+Conflicts: ssh, ssh-nonfree (<<2), ssh-socks, ssh2, sftp, rsh-client (<<0.16.1-1)
+Replaces: ssh
+Suggests: ssh-askpass, xbase-clients, dnsutils
+Provides: ssh, rsh-client
+Description: Secure rlogin/rsh/rcp replacement (OpenSSH with OpenSC support)
+ This is the portable version of OpenSSH, a free implementation of
+ the Secure Shell protocol as specified by the IETF secsh working
+ group.
+ .
+ Ssh (Secure Shell) is a program for logging into a remote machine
+ and for executing commands on a remote machine.
+ It provides secure encrypted communications between two untrusted
+ hosts over an insecure network.  X11 connections and arbitrary TCP/IP
+ ports can also be forwarded over the secure channel.
+ It is intended as a replacement for rlogin, rsh and rcp, and can be
+ used to provide applications with a secure communication channel.
+ .
+ This package provides both the ssh client and the sshd server. This
+ package is compiled with OpenSC support.
+ .
+ --------------------------------------------------------------------
+ .
+ In some countries it may be illegal to use any encryption at all
+ without a special permit.
+
 Package: ssh-askpass-gnome
 Section: gnome
 Priority: optional
diff -ruN openssh-3.8p1/debian/rules openssh-3.8p1.new/debian/rules
--- openssh-3.8p1/debian/rules	2004-05-02 23:43:35.000000000 -0400
+++ openssh-3.8p1.new/debian/rules	2004-05-02 23:17:11.000000000 -0400
@@ -39,30 +39,45 @@
 PAMDEP := libpam-runtime
 endif
 
+# nice shell expansion for the target dirs
+PACKAGE_DIRS := debian/{tmp,ssh-opensc}
+
+# Configure flags
+CONFIGURE_OPTS := --prefix=/usr --sysconfdir=/etc/ssh --libexecdir=/usr/lib --mandir=/usr/share/man --with-tcp-wrappers --with-xauth=/usr/bin/X11/xauth --with-default-path=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin --with-superuser-path=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin --with-pam --with-4in6 --with-privsep-path=/var/run/sshd  --without-rand-helper
+
 # Change the version string to include the Debian version
 SSH_VERSION := $(shell sed -e '/define/!d; s/.*\"\(.*\)\".*/\1/; q' <version.h) Debian $(shell dpkg-parsechangelog | sed -n -e '/^Version:/s/Version: //p')
 
-build: build-deb-stamp
-build-deb-stamp:
+build-regular build-opensc: build-% : build-deb-%-stamp
+build-deb-regular-stamp: BUILD_DEB_DIR := build-deb-regular
+build-deb-opensc-stamp: BUILD_DEB_DIR := build-deb-opensc
+build-deb-opensc-stamp: CONFIGURE_OPTS += --with-opensc=/usr
+build-deb-regular-stamp build-deb-opensc-stamp:
 	dh_testdir
-	mkdir -p build-deb
-	cd build-deb && ../configure --prefix=/usr --sysconfdir=/etc/ssh --libexecdir=/usr/lib --mandir=/usr/share/man --with-tcp-wrappers --with-xauth=/usr/bin/X11/xauth --with-default-path=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin --with-superuser-path=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin --with-pam --with-4in6 --with-privsep-path=/var/run/sshd  --without-rand-helper
+	mkdir -p $(BUILD_DEB_DIR)
+	cd $(BUILD_DEB_DIR) && ../configure $(CONFIGURE_OPTS)
 	# Some 2.2 kernels have trouble with setres[ug]id() (bug #239999).
-	perl -pi -e 's/.*#undef (BROKEN_SETRES[UG]ID).*/#define $$1 1/' build-deb/config.h
-	$(MAKE) -C build-deb -j 2 ASKPASS_PROGRAM='/usr/bin/ssh-askpass' CFLAGS='$(OPTFLAGS) -g -Wall -DLOGIN_PROGRAM=\"/bin/login\" -DLOGIN_NO_ENDOPT -DSSHD_PAM_SERVICE=\"ssh\" -DSSH_VERSION="\"$(SSH_VERSION)\""' SSH_KEYSIGN='/usr/lib/ssh-keysign'
+	perl -pi -e 's/.*#undef (BROKEN_SETRES[UG]ID).*/#define $$1 1/' $(BUILD_DEB_DIR)/config.h
+	$(MAKE) -C $(BUILD_DEB_DIR) -j 2 ASKPASS_PROGRAM='/usr/bin/ssh-askpass' CFLAGS='$(OPTFLAGS) -g -Wall -DLOGIN_PROGRAM=\"/bin/login\" -DLOGIN_NO_ENDOPT -DSSHD_PAM_SERVICE=\"ssh\" -DSSH_VERSION="\"$(SSH_VERSION)\""' SSH_KEYSIGN='/usr/lib/ssh-keysign'
+ifeq ($@,build-deb-regular-stamp)
 	# Support building on Debian 3.0 (with GNOME 1.4) and later.
 	if [ -f /usr/include/libgnomeui-2.0/gnome.h ]; then \
 		$(MAKE) -C contrib gnome-ssh-askpass2 CC='gcc $(OPTFLAGS) -g -Wall'; \
 	elif [ -f /usr/include/gnome-1.0/gnome.h ]; then \
 		$(MAKE) -C contrib gnome-ssh-askpass1 CC='gcc $(OPTFLAGS) -g -Wall'; \
 	fi
+endif
+
+	touch $@
 
-	touch build-deb-stamp
+build: build-regular
+	# build the regular build
 
 clean:
 	dh_testdir
-	rm -f build-deb-stamp
-	rm -rf build-deb
+	rm -f build-deb-regular-stamp build-deb-opensc-stamp
+	rm -f debian/ssh-opensc.*			#rm links
+	rm -rf build-deb-regular build-deb-opensc
 	-$(MAKE) -C contrib clean
 	rm -f config.log
 ifeq ($(PO2DEBCONF),yes)
@@ -83,45 +98,61 @@
 endif
 	dh_clean
 
-install: DH_OPTIONS=
-install: build
-	dh_testdir
-	dh_testroot
-	dh_clean -k
-	dh_installdirs
-
+install-regular: BUILD_DEB_DIR := build-deb-regular
+install-regular: PACKAGE_DIR := debian/tmp
+install-regular: PACKAGE := ssh
+install-regular: DH_OPTIONS=
+install-opensc: BUILD_DEB_DIR := build-deb-opensc
+install-opensc: PACKAGE_DIR := debian/ssh-opensc
+install-opensc: PACKAGE := ssh-opensc
+install-opensc: DH_OPTIONS=
+install-regular install-opensc: install-% : build-%
 	# Add here commands to install the package into debian/tmp.
-	$(MAKE) -C build-deb DESTDIR=`pwd`/debian/tmp install-nokeys
+	$(MAKE) -C $(BUILD_DEB_DIR) DESTDIR=$(CURDIR)/$(PACKAGE_DIR) install-nokeys
 
-	rm -f debian/tmp/etc/ssh/sshd_config
+	rm -f $(PACKAGE_DIR)/etc/ssh/sshd_config
 	#Temporary hack: remove /usr/share/Ssh.bin, since we have no smartcard support anyway.
-	rm -f debian/tmp/usr/share/Ssh.bin
+	rm -f $(PACKAGE_DIR)/usr/share/Ssh.bin
 
-	install -m 755 contrib/ssh-copy-id debian/tmp/usr/bin/ssh-copy-id
-	install -m 644 -c contrib/ssh-copy-id.1 debian/tmp/usr/share/man/man1/ssh-copy-id.1
-	install -m 644 debian/moduli.5 debian/tmp/usr/share/man/man5/moduli.5
+	install -m 755 contrib/ssh-copy-id $(PACKAGE_DIR)/usr/bin/ssh-copy-id
+	install -m 644 -c contrib/ssh-copy-id.1 $(PACKAGE_DIR)/usr/share/man/man1/ssh-copy-id.1
+	install -m 644 debian/moduli.5 $(PACKAGE_DIR)/usr/share/man/man5/moduli.5
 
+ifeq ($(PACKAGE),ssh)
 	if [ -f contrib/gnome-ssh-askpass2 ]; then \
 		install -s -o root -g root -m 755 contrib/gnome-ssh-askpass2 debian/ssh-askpass-gnome/usr/lib/ssh/gnome-ssh-askpass; \
 	elif [ -f contrib/gnome-ssh-askpass1 ]; then \
 		install -s -o root -g root -m 755 contrib/gnome-ssh-askpass1 debian/ssh-askpass-gnome/usr/lib/ssh/gnome-ssh-askpass; \
 	fi
 	install -m 644 debian/gnome-ssh-askpass.1 debian/ssh-askpass-gnome/usr/share/man/man1/gnome-ssh-askpass.1
+endif
+
+	install -m 755 debian/ssh-argv0 $(PACKAGE_DIR)/usr/bin/ssh-argv0
+	install -m 644 debian/ssh-argv0.1 $(PACKAGE_DIR)/usr/share/man/man1/ssh-argv0.1
+
+	install -o root -g root debian/init $(PACKAGE_DIR)/etc/init.d/ssh
+	install -o root -g root -m 644 debian/ssh.default $(PACKAGE_DIR)/etc/default/ssh
 
-	install -m 755 debian/ssh-argv0 debian/tmp/usr/bin/ssh-argv0
-	install -m 644 debian/ssh-argv0.1 debian/tmp/usr/share/man/man1/ssh-argv0.1
+	install -o root -g root -m 755 -d $(PACKAGE_DIR)/var/run/sshd
 
-	install -o root -g root debian/init debian/tmp/etc/init.d/ssh
-	install -o root -g root -m 644 debian/ssh.default debian/tmp/etc/default/ssh
+install:
+	dh_testdir
+	dh_testroot
+	dh_clean -k
+	for file in config dirs postinst postrm preinst prerm ; do \
+		ln -sf "$$file" "debian/ssh-opensc.$$file"; \
+	done
+	dh_installdirs
 
-	install -o root -g root -m 755 -d debian/tmp/var/run/sshd
+	$(MAKE) -f debian/rules install-regular
+	$(MAKE) -f debian/rules install-opensc
 
 # Build architecture-independent files here.
-binary-indep: build install
+binary-indep: install
 	# nothing to do
 
 # Build architecture-dependent files here.
-binary-arch: build install
+binary-arch: install
 	dh_testdir
 	dh_testroot
 ifeq ($(PO2DEBCONF),yes)
@@ -129,10 +160,12 @@
 endif
 	dh_installdebconf
 	dh_installdocs OVERVIEW README
-	cat debian/copyright.head LICENCE > debian/tmp/usr/share/doc/ssh/copyright
-	nroff RFC.nroff > debian/tmp/usr/share/doc/ssh/RFC
-	gzip -9 debian/tmp/usr/share/doc/ssh/RFC
-	rm -rf debian/tmp/usr/share/doc/ssh/RFC.nroff.gz
+	cat debian/copyright.head LICENCE \
+		| tee $(PACKAGE_DIRS)/usr/share/doc/$(PACKAGE)/copyright > /dev/null
+	nroff RFC.nroff | tee $(PACKAGE_DIRS)/usr/share/doc/$(PACKAGE)/RFC \
+		> /dev/null
+	gzip -9 $(PACKAGE_DIRS)/usr/share/doc/$(PACKAGE)/RFC
+	rm -rf $(PACKAGE_DIRS)/usr/share/doc/$(PACKAGE)/RFC.nroff.gz
 ifeq ($(PAMSUBST),yes)
 	# Clean up if we've done this already, to ensure idempotency.
 	if [ -f debian/ssh.pam.new-style ]; then \
@@ -151,8 +184,10 @@
 	dh_compress
 	dh_fixperms
 	dh_installdeb
-	test ! -e debian/tmp/etc/ssh/ssh_prng_cmds \
-	  || echo "/etc/ssh/ssh_prng_cmds" >> debian/tmp/DEBIAN/conffiles
+	for dir in $(PACKAGE_DIRS) ; do \
+		test ! -e "$$dir/etc/ssh/ssh_prng_cmds" \
+			|| echo "/etc/ssh/ssh_prng_cmds" >> "$$dir/DEBIAN/conffiles"; \
+	done
 	dh_shlibdeps
 	dh_gencontrol -- -V'debconf-depends=debconf (>= $(MINDEBCONFVER))' \
 	                 -V'pam-depends=$(PAMDEP)'

Attachment: signature.asc
Description: Digital signature


Reply to: