From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: poffice@blade.nagaokaut.ac.jp Delivered-To: poffice@blade.nagaokaut.ac.jp Received: from kankan.nagaokaut.ac.jp (kankan.nagaokaut.ac.jp [133.44.2.24]) by blade.nagaokaut.ac.jp (Postfix) with ESMTP id 74A9217D44ED for ; Sun, 24 Nov 2013 06:28:01 +0900 (JST) Received: from funfun.nagaokaut.ac.jp (smtp.nagaokaut.ac.jp [133.44.2.201]) by kankan.nagaokaut.ac.jp (Postfix) with ESMTP id B8932B5D831 for ; Sun, 24 Nov 2013 05:59:57 +0900 (JST) Received: from funfun.nagaokaut.ac.jp (localhost.nagaokaut.ac.jp [127.0.0.1]) by funfun.nagaokaut.ac.jp (Postfix) with ESMTP id 4A47B97A844 for ; Sun, 24 Nov 2013 05:59:58 +0900 (JST) X-Virus-Scanned: amavisd-new at nagaokaut.ac.jp Authentication-Results: funfun.nagaokaut.ac.jp (amavisd-new); dkim=fail (2048-bit key) reason="fail (message has been altered)" header.d=gmail.com Received: from funfun.nagaokaut.ac.jp ([127.0.0.1]) by funfun.nagaokaut.ac.jp (funfun.nagaokaut.ac.jp [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 50MbZSzWsh7x for ; Sun, 24 Nov 2013 05:59:58 +0900 (JST) Received: from voscc.nagaokaut.ac.jp (voscc.nagaokaut.ac.jp [133.44.1.100]) by funfun.nagaokaut.ac.jp (Postfix) with ESMTP id 192D997A820 for ; Sun, 24 Nov 2013 05:59:58 +0900 (JST) Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by voscc.nagaokaut.ac.jp (Postfix) with ESMTP id EF50195241A for ; Sun, 24 Nov 2013 05:59:56 +0900 (JST) Received: from [221.186.184.76] (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 78475120EBF; Sun, 24 Nov 2013 05:59:41 +0900 (JST) X-Original-To: ruby-core@ruby-lang.org Delivered-To: ruby-core@ruby-lang.org Received: from mail-ie0-f176.google.com (mail-ie0-f176.google.com [209.85.223.176]) by neon.ruby-lang.org (Postfix) with ESMTPS id E69851206F2 for ; Sun, 24 Nov 2013 05:59:33 +0900 (JST) Received: by mail-ie0-f176.google.com with SMTP id at1so4510258iec.35 for ; Sat, 23 Nov 2013 12:59:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:content-type:message-id:mime-version:subject:date:references :to:in-reply-to; bh=ZfItl+AitWvVitL7UlvcrlswQDOvtG9djko7mdqLVEI=; b=hy8C74dVYn0jbtQ/ErN3w7AOQ5omaPoakJogsF2P5cCugXowGxT8JUk4nBTFOfSKch FgmzlQYHpKkQBTRfAdFP1cyj/4kcmUp2nTVFATU3AAS/b8gSMlDEOXTvcbHnvPAqfnmi 8e+lZO2SZsMLb0ZYw+CnJw8+Pap3kfAVQ+Kz3D8Eij9w8V9jFpc4KGAlH5u3Wjl94e5X 4MBMfNYsr1BGs05lqirHNn48bjyT7Rkqj2MlEzh/Xpaj7jWX88JCaXW4fN1jgp9wAYPI Sj+iaoiN8VsEIgkdSkvcmIwfsrPA5ccwBtpWNbKuJCC4Qa2f6/pMxv5RiZ66khUtQ5b9 RbRw== X-Received: by 10.50.103.6 with SMTP id fs6mr7564424igb.16.1385240371438; Sat, 23 Nov 2013 12:59:31 -0800 (PST) Received: from magicbook.local ([64.128.19.234]) by mx.google.com with ESMTPSA id i11sm16344597igh.0.2013.11.23.12.59.29 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 23 Nov 2013 12:59:29 -0800 (PST) From: Perry Smith Content-Type: multipart/signed; boundary="Apple-Mail=_BE3C6EFB-D185-4C61-995A-D840D221B209"; protocol="application/pgp-signature"; micalg=pgp-sha1 Message-Id: <8DAF1E52-93E5-49A8-917F-E51A4AD370C4@gmail.com> Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\)) Date: Sat, 23 Nov 2013 14:59:27 -0600 References: To: Ruby developers In-Reply-To: X-Mailer: Apple Mail (2.1510) X-ML-Name: ruby-core X-Mail-Count: 58539 Subject: [ruby-core:58539] Re: [ruby-trunk - Bug #9144][Open] ptys on AIX version 4 through 7 X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" --Apple-Mail=_BE3C6EFB-D185-4C61-995A-D840D221B209 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Doing more research, the existing ruby code is 99% there. I got it to work by changing line 248 of ext/pty/pty.c from: #if defined(I_PUSH) && !defined(__linux__) to #if defined(I_PUSH) && !defined(__linux__) && !defined(_AIX) AIX has autopush which is really what the second half of the && should = be testing. Perry On Nov 23, 2013, at 1:14 PM, pedz (Perry Smith) = wrote: >=20 > Issue #9144 has been reported by pedz (Perry Smith). >=20 > ---------------------------------------- > Bug #9144: ptys on AIX version 4 through 7 > https://bugs.ruby-lang.org/issues/9144 >=20 > Author: pedz (Perry Smith) > Status: Open > Priority: Normal > Assignee:=20 > Category:=20 > Target version:=20 > ruby -v: ruby 2.0.0p247 (2013-06-27 revision 41674) = [powerpc-aix6.1.0.0] > Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN >=20 >=20 > The best way to open a pty on AIX version 4 through 7 is using what = they call "AT&T" mode. The steps are to first open "/dev/ptc" which = opens the master side. Then to a ttyname on the file descriptor and = open the string that is returned to open the slave side. >=20 > cat q.c > #include > #include >=20 > int main(int argc, char *argv[]) > { > int master =3D open("/dev/ptc", O_RDWR); > char *slave_name =3D ttyname(master); > int slave =3D open(slave_name, O_RDWR); > int n; > char buf[128]; >=20 > printf("slave name is %s\n", slave_name); > printf("master fd is %d, slave fd is %d\n", master, slave); > write(master, "blah\n", 5); > n =3D read(slave, buf, sizeof(buf)); > printf("n =3D %d\n", n); > printf("%*.*s", n, n, buf); > write(slave, "foodog\n", 7); > n =3D read(master, buf, sizeof(buf)); > printf("n =3D %d\n", n); > printf("%*.*s", n, n, buf); > return 0; > } >=20 > make q > cc q.c -o q >=20 > ./q > slave name is /dev/pts/9 > master fd is 3, slave fd is 5 > n =3D 5 > blah > n =3D 14 > blah > foodog >=20 > (Note that ECHO is set on the tty which is why we see 'blah' when the = slave is read.) >=20 > You can also use what the ruby code calls BSD 4.2 ptys. On my build = that I did as simply as possible, I'm not sure which code I got but it = is not working. I have several versions of Ruby and all fail with = "can't get Master/Slave device (RuntimeError)" While "BSD" mode is = supported and works, the "AT&T" mode is much nicer. >=20 > For AIX version 3, there was a similar approach but instead of = /dev/ptc, the master was called /dev/ptm. =20 >=20 > The _IBMESA code in ext/pty/pty.c (which mentions AIX) I don't = recognize those names. >=20 > There is no need to push any streams modules, etc. Everything is = autopushed. You might want to add in a grantpt but I'm still not clear = when and if that is needed. >=20 >=20 >=20 > --=20 > http://bugs.ruby-lang.org/ --Apple-Mail=_BE3C6EFB-D185-4C61-995A-D840D221B209 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - http://gpgtools.org iQEcBAEBAgAGBQJSkRcvAAoJEIPoMwNgGirlajsH/2rVCQ8YXu9K+1eDGcJARWYE BAH9X+kuqovzq/EEss6hsruErAdFQTqt7RQAgyxAmq2FgBm2e/CMVSETHRjgagMh TYl7KVkJOMt5l1GE8T1k7usAqyxkrWWQ5SlCQ3OTvTwEcQcjj5hi9Qur8nEhh1CV /MPQDkI+VHqecKC9qOpG9IY860BBQM/2Rx+LjCeAwxOC2FyuggrI2NbtljyaAyZk wSaGcoc1KTMEDHL/AdI6ZyA0ThlUEOOzvzJpo+SDPvRpC+OLwz4SP2LXlnoVCwJq AzceqYZ+GaCOgCSBlu3OkWYSFMa/UqSZe9LWpTJDEiV95XFC93Ve0J6aTLazMOQ= =2qDL -----END PGP SIGNATURE----- --Apple-Mail=_BE3C6EFB-D185-4C61-995A-D840D221B209--