Date: Wed, 06 Aug 2014 23:22:21 +0000 From: <pkg-fallout@FreeBSD.org> To: pkg-fallout@FreeBSD.org Subject: [package - 10i386-default][net/openam] Failed for openam-1.1.18_3 in build Message-ID: <53e2b8ad.b9.3f3b28a5@beefy1.isc.freebsd.org>
next in thread | raw e-mail | index | archive | help
You are receiving this mail as a port that you maintain is failing to build on the FreeBSD package build server. Please investigate the failure and submit a PR to fix build. Maintainer: ports@FreeBSD.org Last committer: bapt@FreeBSD.org Ident: $FreeBSD: head/net/openam/Makefile 361812 2014-07-14 18:42:04Z bapt $ Log URL: http://beefy1.isc.freebsd.org/data/10i386-default/2014-08-06_15h34m47s/logs/openam-1.1.18_3.log Build URL: http://beefy1.isc.freebsd.org/build.html?mastername=10i386-default&build=2014-08-06_15h34m47s Log: ====>> Building net/openam build started at Wed Aug 6 23:22:06 UTC 2014 port directory: /usr/ports/net/openam building for: FreeBSD 10i386-default-job-17 10.0-RELEASE-p7 FreeBSD 10.0-RELEASE-p7 i386 maintained by: ports@FreeBSD.org Makefile ident: $FreeBSD: head/net/openam/Makefile 361812 2014-07-14 18:42:04Z bapt $ Poudriere version: 3.1-pre Host OSVERSION: 1100027 Jail OSVERSION: 1000510 ---Begin Environment--- UNAME_m=i386 UNAME_p=i386 OSVERSION=1000510 UNAME_v=FreeBSD 10.0-RELEASE-p7 UNAME_r=10.0-RELEASE-p7 BLOCKSIZE=K MAIL=/var/mail/root STATUS=1 SAVED_TERM=screen MASTERMNT=/usr/local/poudriere/data/.m/10i386-default/ref PKG_EXT=txz PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin POUDRIERE_BUILD_TYPE=bulk PKGNG=1 PKGNAME=openam-1.1.18_3 PKG_DELETE=/usr/local/sbin/pkg-static delete -y -f PKG_ADD=/usr/local/sbin/pkg-static add OLDPWD=/root PWD=/usr/local/poudriere/data/.m/10i386-default/ref/.p/pool MASTERNAME=10i386-default USER=root HOME=/root POUDRIERE_VERSION=3.1-pre LOCALBASE=/usr/local PACKAGE_BUILDING=yes PKG_VERSION=/.p/pkg-static version PKG_BIN=/usr/local/sbin/pkg-static ---End Environment--- ---Begin OPTIONS List--- ---End OPTIONS List--- --CONFIGURE_ARGS-- --End CONFIGURE_ARGS-- --CONFIGURE_ENV-- XDG_DATA_HOME=/wrkdirs/usr/ports/net/openam/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/net/openam/work HOME=/wrkdirs/usr/ports/net/openam/work TMPDIR="/tmp" MAKE=gmake SHELL=/bin/sh CONFIG_SHELL=/bin/sh --End CONFIGURE_ENV-- --MAKE_ENV-- PWLIBDIR=/usr/local/share/pwlib OPENH323DIR=/usr/local/share/openh323 SYSLIBDIR=/usr/local/lib XDG_DATA_HOME=/wrkdirs/usr/ports/net/openam/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/net/openam/work HOME=/wrkdirs/usr/ports/net/openam/work TMPDIR="/tmp" NO_PIE=yes SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local LOCALBASE=/usr/local LIBDIR="/usr/lib" CC="cc" CFLAGS="-O2 -pipe -fno-strict-aliasing" CPP="cpp" CPPFLAGS="" LDFLAGS="" LIBS="" CXX="c++" CXXFLAGS="-O2 -pipe -fno-strict-aliasing" MANPREFIX="/usr/local" BSD_INSTALL_PROGRAM="install -s -o root -g wheel -m 555" BSD_INSTALL_LIB="install -s -o root -g wheel -m 444" BSD_INSTALL_SCRIPT="install -o root -g wheel -m 555" BSD_INSTALL_DATA="install -o root -g wheel -m 444" BSD_INSTALL_MAN="install -o root -g wheel -m 444" --End MAKE_ENV-- --PLIST_SUB-- PORTNAME=openam OSREL=10.0 PREFIX=%D LOCALBASE=/usr/local PORTDOCS="" PORTEXAMPLES="" PORTDATA="" LIB32DIR=lib DOCSDIR="share/doc/openh323" EXAMPLESDIR="share/examples/openam" DATADIR="share/openam" WWWDIR="www/openam" ETCDIR="etc/openam" --End PLIST_SUB-- --SUB_LIST-- PREFIX=/usr/local LOCALBASE=/usr/local DATADIR=/usr/local/share/openam DOCSDIR=/usr/local/share/doc/openh323 EXAMPLESDIR=/usr/local/share/examples/openam WWWDIR=/usr/local/www/openam ETCDIR=/usr/local/etc/openam --End SUB_LIST-- ---Begin make.conf--- ARCH=i386 MACHINE=i386 MACHINE_ARCH=i386 USE_PACKAGE_DEPENDS=yes BATCH=yes WRKDIRPREFIX=/wrkdirs ARCH=i386 MACHINE=i386 MACHINE_ARCH=i386 USE_PACKAGE_DEPENDS=yes BATCH=yes WRKDIRPREFIX=/wrkdirs PORTSDIR=/usr/ports PACKAGES=/packages DISTDIR=/distfiles #### /usr/local/etc/poudriere.d/make.conf #### WITH_PKGNG=yes # clean-restricted via poudriere.conf NO_RESTRICTED #NO_RESTRICTED=yes DISABLE_MAKE_JOBS=poudriere ---End make.conf--- =======================<phase: check-sanity >============================ ===> NOTICE: This port is deprecated; you may wish to reconsider installing it: Not staged. See http://lists.freebsd.org/pipermail/freebsd-ports-announce/2014-May/000080.html. It is scheduled to be removed on or after 2014-08-31. =========================================================================== =======================<phase: pkg-depends >============================ ===> openam-1.1.18_3 depends on file: /usr/local/sbin/pkg - not found ===> Verifying install for /usr/local/sbin/pkg in /usr/ports/ports-mgmt/pkg ===> Installing existing package /packages/All/pkg-1.3.5.1.txz [10i386-default-job-17] Installing pkg-1.3.5.1... done Message for pkg-1.3.5.1: If you are upgrading from the old package format, first run: # pkg2ng ===> Returning to build of openam-1.1.18_3 =========================================================================== =======================<phase: fetch-depends >============================ =========================================================================== =======================<phase: fetch >============================ ===> NOTICE: This port is deprecated; you may wish to reconsider installing it: Not staged. See http://lists.freebsd.org/pipermail/freebsd-ports-announce/2014-May/000080.html. It is scheduled to be removed on or after 2014-08-31. ===> Fetching all distfiles required by openam-1.1.18_3 for building =========================================================================== =======================<phase: checksum >============================ ===> NOTICE: This port is deprecated; you may wish to reconsider installing it: Not staged. See http://lists.freebsd.org/pipermail/freebsd-ports-announce/2014-May/000080.html. It is scheduled to be removed on or after 2014-08-31. ===> Fetching all distfiles required by openam-1.1.18_3 for building => SHA256 Checksum OK for openam-v1_1_18-src-tar.gz. =========================================================================== =======================<phase: extract-depends>============================ =========================================================================== =======================<phase: extract >============================ ===> NOTICE: This port is deprecated; you may wish to reconsider installing it: Not staged. See http://lists.freebsd.org/pipermail/freebsd-ports-announce/2014-May/000080.html. It is scheduled to be removed on or after 2014-08-31. ===> Fetching all distfiles required by openam-1.1.18_3 for building ===> Extracting for openam-1.1.18_3 => SHA256 Checksum OK for openam-v1_1_18-src-tar.gz. =========================================================================== =======================<phase: patch-depends >============================ =========================================================================== =======================<phase: patch >============================ ===> Patching for openam-1.1.18_3 =========================================================================== =======================<phase: build-depends >============================ ===> openam-1.1.18_3 depends on executable: gmake - not found ===> Verifying install for gmake in /usr/ports/devel/gmake ===> Installing existing package /packages/All/gmake-3.82_1.txz [10i386-default-job-17] Installing indexinfo-0.2... done [10i386-default-job-17] Installing indexinfo-0.2... done [10i386-default-job-17] Installing indexinfo-0.2... done ===> Returning to build of openam-1.1.18_3 =========================================================================== =======================<phase: lib-depends >============================ ===> openam-1.1.18_3 depends on shared library: libh323_r.so - not found ===> Verifying for libh323_r.so in /usr/ports/net/openh323 ===> Installing existing package /packages/All/openh323-1.19.0.1_7.txz [10i386-default-job-17] Installing binutils-2.24... done [10i386-default-job-17] Installing gcc-ecj-4.5... done [10i386-default-job-17] Installing gmp-5.1.3_2... done [10i386-default-job-17] Installing mpfr-3.1.2_2... done [10i386-default-job-17] Installing mpfr-3.1.2_2... done [10i386-default-job-17] Installing mpfr-3.1.2_2... done [10i386-default-job-17] Installing expat-2.1.0_1... done [10i386-default-job-17] Installing openldap-client-2.4.39_1... done [10i386-default-job-17] Installing openldap-client-2.4.39_1... done [10i386-default-job-17] Installing openldap-client-2.4.39_1... done Message for gcc-4.7.4: To ensure binaries built with this toolchain find appropriate versions of the necessary run-time libraries, you may want to link using -Wl,-rpath=/usr/local/lib/gcc47 For ports leveraging USE_GCC, USES=compiler, or USES=fortran this happens <snip> { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ~~~~~~ ^ /usr/local/include/openh323/lid.h:244:3: note: explicitly cast the pointer to silence this warning /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ^ In file included from main.cxx:351: In file included from ./main.h:170: /usr/local/include/openh323/lid.h:1012:3: warning: first operand of this 'memcmp' call is a pointer to dynamic class 'const OpalLineChannel'; vtable pointer will be compared [-Wdynamic-class-memaccess] PCLASSINFO(OpalLineChannel, PChannel); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ~~~~~~ ^ /usr/local/include/openh323/lid.h:1012:3: note: explicitly cast the pointer to silence this warning /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ^ In file included from main.cxx:351: In file included from ./main.h:170: /usr/local/include/openh323/lid.h:1090:3: warning: first operand of this 'memcmp' call is a pointer to dynamic class 'const H323_LIDCapability'; vtable pointer will be compared [-Wdynamic-class-memaccess] PCLASSINFO(H323_LIDCapability, H323AudioCapability); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ~~~~~~ ^ /usr/local/include/openh323/lid.h:1090:3: note: explicitly cast the pointer to silence this warning /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ^ In file included from main.cxx:351: In file included from ./main.h:170: /usr/local/include/openh323/lid.h:1186:3: warning: first operand of this 'memcmp' call is a pointer to dynamic class 'const H323_CiscoG7231aLIDCapability'; vtable pointer will be compared [-Wdynamic-class-memaccess] PCLASSINFO(H323_CiscoG7231aLIDCapability, H323NonStandardAudioCapability); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ~~~~~~ ^ /usr/local/include/openh323/lid.h:1186:3: note: explicitly cast the pointer to silence this warning /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ^ In file included from main.cxx:351: In file included from ./main.h:170: /usr/local/include/openh323/lid.h:1226:3: warning: first operand of this 'memcmp' call is a pointer to dynamic class 'const H323_LIDCodec'; vtable pointer will be compared [-Wdynamic-class-memaccess] PCLASSINFO(H323_LIDCodec, H323AudioCodec); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ~~~~~~ ^ /usr/local/include/openh323/lid.h:1226:3: note: explicitly cast the pointer to silence this warning /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ^ In file included from main.cxx:351: ./main.h:177:3: warning: first operand of this 'memcmp' call is a pointer to dynamic class 'const OpenAm'; vtable pointer will be compared [-Wdynamic-class-memaccess] PCLASSINFO(OpenAm, PProcess) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ~~~~~~ ^ ./main.h:177:3: note: explicitly cast the pointer to silence this warning /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ^ In file included from main.cxx:351: ./main.h:194:3: error: cannot initialize object parameter of type 'const H323EndPoint' with an expression of type 'const MyH323EndPoint' PCLASSINFO(MyH323EndPoint, H323EndPoint); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ptlib/object.h:1377:59: note: expanded from macro 'PCLASSINFO' { return strcmp(clsName, cls::Class()) == 0 || par::InternalIsDescendant(clsName); } \ ^~~~~~~~~~~~~~~~~~~~ In file included from main.cxx:351: ./main.h:194:3: error: cannot initialize object parameter of type 'const H323EndPoint' with an expression of type 'const MyH323EndPoint' PCLASSINFO(MyH323EndPoint, H323EndPoint); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ptlib/object.h:1379:36: note: expanded from macro 'PCLASSINFO' { return ancestor > 0 ? par::GetClass(ancestor-1) : cls::Class(); } \ ^~~~~~~~ In file included from main.cxx:351: ./main.h:194:3: warning: first operand of this 'memcmp' call is a pointer to dynamic class 'const MyH323EndPoint'; vtable pointer will be compared [-Wdynamic-class-memaccess] PCLASSINFO(MyH323EndPoint, H323EndPoint); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ~~~~~~ ^ ./main.h:194:3: note: explicitly cast the pointer to silence this warning /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ^ In file included from main.cxx:351: ./main.h:263:3: warning: first operand of this 'memcmp' call is a pointer to dynamic class 'const PCM_OGMChannel'; vtable pointer will be compared [-Wdynamic-class-memaccess] PCLASSINFO(PCM_OGMChannel, PIndirectChannel); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ~~~~~~ ^ ./main.h:263:3: note: explicitly cast the pointer to silence this warning /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ^ In file included from main.cxx:351: ./main.h:310:3: warning: first operand of this 'memcmp' call is a pointer to dynamic class 'const G7231_OGMChannel'; vtable pointer will be compared [-Wdynamic-class-memaccess] PCLASSINFO(G7231_OGMChannel, PCM_OGMChannel); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ~~~~~~ ^ ./main.h:310:3: note: explicitly cast the pointer to silence this warning /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ^ In file included from main.cxx:351: ./main.h:324:3: warning: first operand of this 'memcmp' call is a pointer to dynamic class 'const MyH323Connection'; vtable pointer will be compared [-Wdynamic-class-memaccess] PCLASSINFO(MyH323Connection, H323Connection); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ~~~~~~ ^ ./main.h:324:3: note: explicitly cast the pointer to silence this warning /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ^ In file included from main.cxx:351: ./main.h:375:3: warning: first operand of this 'memcmp' call is a pointer to dynamic class 'const PCM_RecordFile'; vtable pointer will be compared [-Wdynamic-class-memaccess] PCLASSINFO(PCM_RecordFile, PIndirectChannel) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ~~~~~~ ^ ./main.h:375:3: note: explicitly cast the pointer to silence this warning /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ^ In file included from main.cxx:351: ./main.h:407:3: warning: first operand of this 'memcmp' call is a pointer to dynamic class 'const G7231_RecordFile'; vtable pointer will be compared [-Wdynamic-class-memaccess] PCLASSINFO(G7231_RecordFile, PCM_RecordFile); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ~~~~~~ ^ ./main.h:407:3: note: explicitly cast the pointer to silence this warning /usr/local/include/ptlib/object.h:1381:35: note: expanded from macro 'PCLASSINFO' { return (Comparison)memcmp(this, &obj, sizeof(cls)); } \ ^ main.cxx:578:3: error: cannot initialize object parameter of type 'H323EndPoint' with an expression of type 'MyH323EndPoint' endpoint.SetLocalUserName(userName); ^~~~~~~~ main.cxx:582:5: error: cannot initialize object parameter of type 'H323EndPoint' with an expression of type 'MyH323EndPoint' endpoint.SetGatekeeperPassword(password); ^~~~~~~~ main.cxx:599:19: error: no matching constructor for initialization of 'H323ListenerTCP' listener = new H323ListenerTCP(endpoint, interfaceAddress, listenPort); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/openh323/transports.h:718:5: note: candidate constructor not viable: no known conversion from 'MyH323EndPoint' to 'H323EndPoint &' for 1st argument H323ListenerTCP( ^ /usr/local/include/openh323/transports.h:711:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 3 were provided class H323ListenerTCP : public H323Listener ^ main.cxx:601:17: error: no matching member function for call to 'StartListener' if (!endpoint.StartListener(listener)) { ~~~~~~~~~^~~~~~~~~~~~~ /usr/local/include/openh323/h323ep.h:690:10: note: candidate function not viable: no known conversion from 'MyH323EndPoint' to 'H323EndPoint' for object argument BOOL StartListener( ^ /usr/local/include/openh323/h323ep.h:705:10: note: candidate function not viable: no known conversion from 'MyH323EndPoint' to 'H323EndPoint' for object argument BOOL StartListener( ^ main.cxx:610:44: error: no matching constructor for initialization of 'H323TransportUDP' if (endpoint.SetGatekeeper(gkName, new H323TransportUDP(endpoint))) ^ ~~~~~~~~ /usr/local/include/openh323/transports.h:880:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'MyH323EndPoint' to 'const H323TransportUDP' for 1st argument class H323TransportUDP : public H323TransportIP ^ /usr/local/include/openh323/transports.h:887:5: note: candidate constructor not viable: no known conversion from 'MyH323EndPoint' to 'H323EndPoint &' for 1st argument H323TransportUDP( ^ main.cxx:611:38: error: cannot initialize object parameter of type 'const H323EndPoint' with an expression of type 'MyH323EndPoint' cout << "Gatekeeper set: " << *endpoint.GetGatekeeper() << endl; ^~~~~~~~ main.cxx:619:41: error: no matching constructor for initialization of 'H323TransportUDP' if (endpoint.DiscoverGatekeeper(new H323TransportUDP(endpoint))) ^ ~~~~~~~~ /usr/local/include/openh323/transports.h:880:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'MyH323EndPoint' to 'const H323TransportUDP' for 1st argument class H323TransportUDP : public H323TransportIP ^ /usr/local/include/openh323/transports.h:887:5: note: candidate constructor not viable: no known conversion from 'MyH323EndPoint' to 'H323EndPoint &' for 1st argument H323TransportUDP( ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 1102 warnings and 20 errors generated. gmake[2]: *** [obj_r/main.o] Error 1 gmake[2]: Leaving directory `/wrkdirs/usr/ports/net/openam/work/openam_v1_1_18' gmake[1]: *** [optshared] Error 2 gmake[1]: Leaving directory `/wrkdirs/usr/ports/net/openam/work/openam_v1_1_18' *** Error code 1 Stop. make: stopped in /usr/ports/net/openam
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53e2b8ad.b9.3f3b28a5>