rfc1036 / whois

Intelligent WHOIS client
GNU General Public License v2.0
497 stars 117 forks source link

whois --version reports illegal option on Solaris 11.4 compiled with GCC #159

Closed w112087 closed 12 months ago

w112087 commented 12 months ago

Hi,

I've compiled whois on Solaris 11.4 SPARC using GCC 12.

SunOS build 5.11 11.4.54.138.1 sun4v sparc sun4v Solaris

$ /usr/bin/gcc -v Using built-in specs. COLLECT_GCC=/usr/bin/gcc COLLECT_LTO_WRAPPER=/usr/gcc/12/lib/gcc/sparcv9-sun-solaris2.11/12.2.0/lto-wrapper Target: sparcv9-sun-solaris2.11 Configured with: /builds/11.4-SRU/11.4.54.0.1.138.0/components/gcc12/gcc-12.2.0/configure --prefix=/usr/gcc/12 --mandir=/usr/gcc/12/share/man --bindir=/usr/gcc/12/bin --sbindir=/usr/gcc/12/sbin --libdir=/usr/gcc/12/lib --infodir=/usr/gcc/12/share/info --libexecdir=/usr/gcc/12/lib --enable-languages=ada,c,c++,fortran,go,objc --enable-shared --enable-initfini-array --disable-rpath --with-system-zlib --with-build-config=no --without-gnu-ld --with-ld=/usr/bin/ld --with-gnu-as --with-as=/usr/gnu/bin/as --disable-bootstrap 'BOOT_CFLAGS=-g -O2' sparcv9-sun-solaris2.11 Thread model: posix Supported LTO compression algorithms: zlib gcc version 12.2.0 (GCC)

$ echo $CC /usr/bin/gcc

$ git clone https://github.com/rfc1036/whois.git

$ cd whois

$ make /usr/bin/gcc -DHAVE_LIBIDN2 -I/usr/include/idn -g -O2 -MM -MG *.c > Makefile.depend perl make_version_h.pl debian/changelog > version.h perl make_ip_del.pl < ip_del_list > ip_del.h perl make_ip6_del.pl < ip6_del_list > ip6_del.h perl make_as_del.pl < as_del_list > as_del.h Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 3. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 4. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 5. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 6. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 7. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 8. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 9. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 10. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 11. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 12. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 13. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 14. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 15. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 16. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 17. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 18. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 19. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 20. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 21. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 22. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 23. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 24. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 25. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 26. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 27. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 28. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 29. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 30. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 31. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 32. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 33. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 34. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 35. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 36. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 37. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 38. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 39. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 40. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 41. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 42. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 43. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 44. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 45. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 46. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 47. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 48. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 49. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 50. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 51. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 52. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 53. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 54. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 55. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 56. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 57. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 58. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 59. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 60. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 61. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 62. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 63. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 64. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 65. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 66. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 67. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 68. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 69. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 70. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 71. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 72. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 73. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 74. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 75. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 76. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 77. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 78. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 79. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 80. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 81. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 82. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 83. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 84. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 85. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 86. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 87. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 88. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 89. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 91. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 92. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 93. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 96. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 98. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 99. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 100. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 101. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 102. Use of uninitialized value $comment in concatenation (.) or string at make_as_del.pl line 30, <> line 112. perl make_new_gtlds.pl < new_gtlds_list > new_gtlds.h perl make_tld_serv.pl < tld_serv_list > tld_serv.h perl make_nic_handles.pl < nic_handles_list > nic_handles.h /usr/bin/gcc -DHAVE_LIBIDN2 -I/usr/include/idn -g -O2 -c whois.c /usr/bin/gcc -DHAVE_LIBIDN2 -I/usr/include/idn -g -O2 -c utils.c /usr/bin/gcc -g -O2 -o whois whois.o utils.o -lidn2 /usr/bin/gcc -DHAVELIBIDN2 -I/usr/include/idn -g -O2 -c mkpasswd.c /usr/bin/gcc -g -O2 -o mkpasswd mkpasswd.o utils.o -lcrypt cd po && /build/make-4.3/bin/make make[1]: Entering directory '/build/TMP/whois/po' xgettext --default-domain=whois \ --add-comments --keyword= --keyword=N_ ../whois.c ../mkpasswd.c if cmp -s whois.po whois.pot; then \ rm -f whois.po; \ else \ mv whois.po whois.pot; \ fi msgfmt --statistics --check --verbose --output-file=cs.mo cs.po cs.po: 39 translated messages, 1 fuzzy translation. msgfmt --statistics --check --verbose --output-file=da.mo da.po da.po: 39 translated messages, 1 fuzzy translation. msgfmt --statistics --check --verbose --output-file=de.mo de.po de.po: 40 translated messages. msgfmt --statistics --check --verbose --output-file=el.mo el.po el.po: 21 translated messages, 18 fuzzy translations, 1 untranslated message. msgfmt --statistics --check --verbose --output-file=es.mo es.po es.po: 39 translated messages, 1 fuzzy translation. msgfmt --statistics --check --verbose --output-file=eu.mo eu.po eu.po: 18 translated messages, 21 fuzzy translations, 1 untranslated message. msgfmt --statistics --check --verbose --output-file=fi.mo fi.po fi.po: 40 translated messages. msgfmt --statistics --check --verbose --output-file=fr.mo fr.po fr.po: 39 translated messages, 1 fuzzy translation. msgfmt --statistics --check --verbose --output-file=it.mo it.po it.po: 40 translated messages. msgfmt --statistics --check --verbose --output-file=ja.mo ja.po ja.po: 21 translated messages, 17 fuzzy translations, 2 untranslated messages. msgfmt --statistics --check --verbose --output-file=ka.mo ka.po ka.po: 40 translated messages. msgfmt --statistics --check --verbose --output-file=pl.mo pl.po pl.po: 40 translated messages. msgfmt --statistics --check --verbose --output-file=pt_BR.mo pt_BR.po pt_BR.po: 39 translated messages, 1 fuzzy translation. msgfmt --statistics --check --verbose --output-file=ru.mo ru.po ru.po: 39 translated messages, 1 fuzzy translation. msgfmt --statistics --check --verbose --output-file=tr.mo tr.po tr.po: 40 translated messages. msgfmt --statistics --check --verbose --output-file=zh_CN.mo zh_CN.po zh_CN.po: 36 translated messages, 4 fuzzy translations. make[1]: Leaving directory '/build/TMP/whois/po'

whois seems to build and work correctly as below:

$ ./whois -H amazon.com Domain Name: AMAZON.COM Registry Domain ID: 281209_DOMAIN_COM-VRSN Registrar WHOIS Server: whois.markmonitor.com Registrar URL: http://www.markmonitor.com Updated Date: 2023-05-16T19:03:14Z Creation Date: 1994-11-01T05:00:00Z Registry Expiry Date: 2024-10-31T04:00:00Z Registrar: MarkMonitor Inc. Registrar IANA ID: 292 Registrar Abuse Contact Email: abusecomplaints@markmonitor.com Registrar Abuse Contact Phone: +1.2086851750 Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited Name Server: NS1.AMZNDNS.CO.UK Name Server: NS1.AMZNDNS.COM Name Server: NS1.AMZNDNS.NET Name Server: NS1.AMZNDNS.ORG Name Server: NS2.AMZNDNS.CO.UK Name Server: NS2.AMZNDNS.COM Name Server: NS2.AMZNDNS.NET Name Server: NS2.AMZNDNS.ORG DNSSEC: unsigned URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/

Last update of whois database: 2023-11-08T09:52:15Z <<<

For more information on Whois status codes, please visit https://icann.org/epp

NOTICE: The expiration date displayed in this record is the date the registrar's sponsorship of the domain name registration in the registry is currently set to expire. This date does not necessarily reflect the expiration date of the domain name registrant's agreement with the sponsoring registrar. Users may consult the sponsoring registrar's Whois database to view the registrar's reported date of expiration for this registration.

Domain Name: amazon.com Registry Domain ID: 281209_DOMAIN_COM-VRSN Registrar WHOIS Server: whois.markmonitor.com Registrar URL: http://www.markmonitor.com Updated Date: 2023-05-16T18:56:31+0000 Creation Date: 1994-11-01T05:00:00+0000 Registrar Registration Expiration Date: 2024-10-30T07:00:00+0000 Registrar: MarkMonitor, Inc. Registrar IANA ID: 292 Registrar Abuse Contact Email: abusecomplaints@markmonitor.com Registrar Abuse Contact Phone: +1.2086851750 Domain Status: clientUpdateProhibited (https://www.icann.org/epp#clientUpdateProhibited) Domain Status: clientTransferProhibited (https://www.icann.org/epp#clientTransferProhibited) Domain Status: clientDeleteProhibited (https://www.icann.org/epp#clientDeleteProhibited) Domain Status: serverUpdateProhibited (https://www.icann.org/epp#serverUpdateProhibited) Domain Status: serverTransferProhibited (https://www.icann.org/epp#serverTransferProhibited) Domain Status: serverDeleteProhibited (https://www.icann.org/epp#serverDeleteProhibited) Registry Registrant ID: Registrant Name: Hostmaster, Amazon Legal Dept. Registrant Organization: Amazon Technologies, Inc. Registrant Street: P.O. Box 8102 Registrant City: Reno Registrant State/Province: NV Registrant Postal Code: 89507 Registrant Country: US Registrant Phone: +1.2062664064 Registrant Phone Ext: Registrant Fax: +1.2062667010 Registrant Fax Ext: Registrant Email: hostmaster@amazon.com Registry Admin ID: Admin Name: Hostmaster, Amazon Legal Dept. Admin Organization: Amazon Technologies, Inc. Admin Street: P.O. Box 8102 Admin City: Reno Admin State/Province: NV Admin Postal Code: 89507 Admin Country: US Admin Phone: +1.2062664064 Admin Phone Ext: Admin Fax: +1.2062667010 Admin Fax Ext: Admin Email: hostmaster@amazon.com Registry Tech ID: Tech Name: Hostmaster, Amazon Legal Dept. Tech Organization: Amazon Technologies, Inc. Tech Street: P.O. Box 8102 Tech City: Reno Tech State/Province: NV Tech Postal Code: 89507 Tech Country: US Tech Phone: +1.2062664064 Tech Phone Ext: Tech Fax: +1.2062667010 Tech Fax Ext: Tech Email: hostmaster@amazon.com Name Server: ns2.amzndns.co.uk Name Server: ns1.amzndns.net Name Server: ns1.amzndns.co.uk Name Server: ns2.amzndns.org Name Server: ns1.amzndns.com Name Server: ns2.amzndns.net Name Server: ns1.amzndns.org Name Server: ns2.amzndns.com DNSSEC: unsigned URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/

Last update of WHOIS database: 2023-11-08T09:46:30+0000 <<<

For more information on WHOIS status codes, please visit: https://www.icann.org/resources/pages/epp-status-codes

If you wish to contact this domain▒s Registrant, Administrative, or Technical contact, and such email address is not visible above, you may do so via our web form, pursuant to ICANN▒s Temporary Specification. To verify that you are not a robot, please enter your email address to receive a link to a page that facilitates email communication with the relevant contact(s).

Web-based WHOIS: https://domains.markmonitor.com/whois

If you have a legitimate interest in viewing the non-public WHOIS details, send your request and the reasons for your request to whoisrequest@markmonitor.com and specify the domain name in the subject line. We will review that request and may ask for supporting documentation and explanation.

The data in MarkMonitor▒s WHOIS database is provided for information purposes, and to assist persons in obtaining information about or related to a domain name▒s registration record. While MarkMonitor believes the data to be accurate, the data is provided "as is" with no guarantee or warranties regarding its accuracy.

By submitting a WHOIS query, you agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to: (1) allow, enable, or otherwise support the transmission by email, telephone, or facsimile of mass, unsolicited, commercial advertising, or spam; or (2) enable high volume, automated, or electronic processes that send queries, data, or email to MarkMonitor (or its systems) or the domain name contacts (or its systems).

MarkMonitor reserves the right to modify these terms at any time.

By submitting this query, you agree to abide by this policy.

MarkMonitor Domain Management(TM) Protecting companies and consumers in a digital world.

Visit MarkMonitor at https://www.markmonitor.com Contact us at +1.8007459229 In Europe, at +44.02032062220

All looks good, except when I check the version or anything with the "--" option?

$ ./whois --version ./whois: illegal option -- version Usage: whois [OPTION]... OBJECT...

-h HOST, --host HOST connect to server HOST -p PORT, --port PORT connect to PORT -I query whois.iana.org and follow its referral -H hide legal disclaimers --verbose explain what is being done --no-recursion disable recursion from registry to registrar servers --help display this help and exit --version output version information and exit

These flags are supported by whois.ripe.net and some RIPE-like servers: -l find the one level less specific match -L find all levels less specific matches -m find all one level more specific matches -M find all levels of more specific matches -c find the smallest match containing a mnt-irt attribute -x exact match -b return brief IP address ranges with abuse contact -B turn off object filtering (show email addresses) -G turn off grouping of associated objects -d return DNS reverse delegation objects too -i ATTR[,ATTR]... do an inverse look-up for specified ATTRibutes -T TYPE[,TYPE]... only look for objects of TYPE -K only primary keys are returned -r turn off recursive look-ups for contact information -R force to show local copy of the domain object even if it contains referral -a also search all the mirrored databases -s SOURCE[,SOURCE]... search the database mirrored from SOURCE -g SOURCE:FIRST-LAST find updates from SOURCE from serial FIRST to LAST -t TYPE request template for object of TYPE -v TYPE request verbose template for object of TYPE -q [version|sources|types] query specified server info

After the compile I can see version.h is being created

$ cat version.h

define VERSION "5.5.19"

define IDSTRING "Md5.5.19"

Any idea how I can fix this minor issue, or more likely what I've done wrong.

Thanks very much for this great tool.

rfc1036 commented 12 months ago

I see that Solaris nowadays supports getopt_long(3), so you can just add #define HAVE_GETOPT_LONG to config.h.

But do you know when it was introduced in Solaris?

w112087 commented 12 months ago

Many thanks for instruction above, after re-compile it is now working as expected:

$ ./whois --version Version 5.5.19.

Report bugs to md+whois@linux.it.

I do not know when getopt_long was added

Many thanks once again.