git: e460db34a362 - main - astro/xephem: Update to 4.1.0

From: Wen Heping <wen_at_FreeBSD.org>
Date: Tue, 03 May 2022 09:30:01 UTC
The branch main has been updated by wen:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e460db34a36210b10f36003afd0c47f58fb461e9

commit e460db34a36210b10f36003afd0c47f58fb461e9
Author:     Wen Heping <wen@FreeBSD.org>
AuthorDate: 2022-05-03 06:41:18 +0000
Commit:     Wen Heping <wen@FreeBSD.org>
CommitDate: 2022-05-03 06:41:18 +0000

    astro/xephem: Update to 4.1.0
    
    Update LICENSE
---
 astro/xephem/Makefile                        |  33 +---
 astro/xephem/distinfo                        |   6 +-
 astro/xephem/files/patch-Makefile            | 109 ++---------
 astro/xephem/files/patch-auxil_mpcorb2edb.pl |  20 --
 astro/xephem/files/patch-earthmenu.c         |  81 --------
 astro/xephem/files/patch-fallbacks.c         |  17 --
 astro/xephem/files/patch-net.h               |  30 ---
 astro/xephem/files/patch-netmenu.c           | 273 ---------------------------
 astro/xephem/files/patch-sunmenu.c           |  87 ---------
 astro/xephem/files/patch-ucac.c              |  63 -------
 astro/xephem/files/patch-usno.c              |  49 -----
 astro/xephem/files/patch-webdbmenu.c         | 104 ----------
 astro/xephem/files/patch-xephem.h            |  16 --
 astro/xephem/pkg-plist                       |   6 +-
 14 files changed, 27 insertions(+), 867 deletions(-)

diff --git a/astro/xephem/Makefile b/astro/xephem/Makefile
index e9a42bdb0a63..9c11ac47b21e 100644
--- a/astro/xephem/Makefile
+++ b/astro/xephem/Makefile
@@ -1,19 +1,14 @@
 # Created by: erich@FreeBSD.org
 
 PORTNAME=	xephem
-PORTVERSION=	3.7.7
-PORTREVISION=	5
+PORTVERSION=	4.1.0
 CATEGORIES=	astro
-MASTER_SITES=	http://www.clearskyinstitute.com/xephem/
 
 MAINTAINER=	ports@FreeBSD.org
 COMMENT=	Interactive astronomical ephemeris program
 
-# Converted from RESTRICTED
-LICENSE=	XEPHEM
-LICENSE_NAME=	Xephem
-LICENSE_TEXT=	Personal use only
-LICENSE_PERMS=	auto-accept
+LICENSE=	MIT
+LICENSE_FILE=	${WRKDIR}/XEphem-${PORTVERSION}/LICENSE
 
 LIB_DEPENDS=	libpng.so:graphics/png \
 		libfontconfig.so:x11-fonts/fontconfig
@@ -21,24 +16,14 @@ LIB_DEPENDS=	libpng.so:graphics/png \
 USES=		gmake groff jpeg motif tar:tgz ssl xorg
 USE_XORG=	xt xext xmu x11 xft
 
-LDFLAGS+=	-lfontconfig
-
-MAKE_JOBS_UNSAFE=	yes
+USE_GITHUB=	yes
+GH_PROJECT=	XEphem
 
-WRKSRC=		${WRKDIR}/${DISTNAME}/GUI/xephem
-
-# XXX needs to be the same as DISTFILES
-XEPHEMSRC=	${PORTNAME}-${PORTVERSION}.tgz
+LDFLAGS+=	-lfontconfig
 
-.include <bsd.port.pre.mk>
+WRKSRC_SUBDIR=	GUI/xephem
 
-.for file in ${XEPHEMSRC}
-.if !exists(${DISTDIR}/${file})
-IGNORE=	because of licensing restrictions, you must manually fetch ${file}\
-	from http://www.clearskyinstitute.com/xephem/,\
-	place it in ${DISTDIR} and then run make again
-.endif
-.endfor
+MAKE_JOBS_UNSAFE=	yes
 
 post-patch:
 	@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \
@@ -67,4 +52,4 @@ do-install:
 		"auxil catalogs fifos fits gallery help lo" \
 		${STAGEDIR}${PREFIX}/lib/X11/xephem
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/astro/xephem/distinfo b/astro/xephem/distinfo
index 3e0f0f3137ba..564ce9ab3969 100644
--- a/astro/xephem/distinfo
+++ b/astro/xephem/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1495658161
-SHA256 (xephem-3.7.7.tgz) = fb0b889218322c1cc0b994da7125e624e4f0112d9da1c468936600d1179e55de
-SIZE (xephem-3.7.7.tgz) = 18128521
+TIMESTAMP = 1651558430
+SHA256 (xephem-XEphem-4.1.0_GH0.tar.gz) = 8ab3670e303bdf209a673d5e091d1cd6e4577a0574da26a3c3d6629825f98241
+SIZE (xephem-XEphem-4.1.0_GH0.tar.gz) = 17213750
diff --git a/astro/xephem/files/patch-Makefile b/astro/xephem/files/patch-Makefile
index c6fdbc9b4e40..494f2fba75e6 100644
--- a/astro/xephem/files/patch-Makefile
+++ b/astro/xephem/files/patch-Makefile
@@ -1,15 +1,15 @@
---- Makefile.orig	2015-08-09 21:36:50 UTC
+--- Makefile.orig	2022-05-03 02:30:02 UTC
 +++ Makefile
-@@ -23,44 +23,44 @@ MOTIFI = $(MOTIF)
+@@ -22,18 +22,18 @@ MOTIFI = $(MOTIF)
  MOTIFL = $(MOTIF)
  endif
  ifndef MOTIFI
 -MOTIFI = /usr/include
-+MOTIFI = /usr/local/include
++MOTIFI = %%LOCALBASE%%/include
  endif
  ifndef MOTIFL
 -MOTIFL = /usr/lib
-+MOTIFL = %%/LOCALBASE%%/lib
++MOTIFL = %%LOCALBASE%%/lib
  endif
  
  # for linux and Apple OS X
@@ -17,103 +17,16 @@
 -CLDFLAGS = -g
 -CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -Wall -I$(MOTIFI) -I/opt/X11/include
 -LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L/opt/X11/lib
--XLIBS = -lXm -lXp -lXt -lXext -lXmu -lX11
--LIBS = $(XLIBS) $(LIBLIB) -lm
-+CC?= cc
-+CLDFLAGS+= -g
-+CFLAGS+= $(LIBINC) $(CLDFLAGS) -Wall -I$(MOTIFI) -I/usr/local/include
-+LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L/usr/local/lib
+-XLIBS = -lXm -lXt -lXext -lXmu -lX11
++CC? = cc
++CLDFLAGS += -g
++CFLAGS += $(LIBINC) $(CLDFLAGS) -O2 -Wall -I$(MOTIFI) -I%%LOCALBASE%%/include
++LDFLAGS += $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L%%LOCALBASE%%/lib
 +XLIBS = -lXm -lXt -lXext -lXmu -lX11 -lXft
-+LIBS = $(XLIBS) $(LIBLIB) -lm -lssl
+ LIBS = $(XLIBS) $(LIBLIB) -lm -lssl
  
  # static linking on Apple using X11 libs from ports
--# CC = gcc
-+# CC?= cc
- # OLI = /opt/local/include
- # OLL = /opt/local/lib
--# CLDFLAGS = -g
--# CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -Wall -I$(MOTIFI) -I$(OLI)
--# LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L$(OLL)
-+# CLDFLAGS+= -g
-+# CFLAGS+= $(LIBINC) $(CLDFLAGS) -Wall -I$(MOTIFI) -I$(OLI)
-+# LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L$(OLL)
- # XLIBS = -lXm $(OLL)/libXp.a $(OLL)/libXt.a $(OLL)/libSM.a $(OLL)/libICE.a $(OLL)/libXext.a $(OLL)/libXmu.a $(OLL)/libX11.a $(OLL)/libxcb.a $(OLL)/libXau.a $(OLL)/libXdmcp.a
- # LIBS = $(XLIBS) $(LIBLIB) -lm
- 
- # for ppc Apple OS X to make universal (i386 and ppc binary), requires
- # Xcode 2.2, /Developers/SDK/MacOSX10.4u.sdk and all libs, including libXm,
- # built similarly
--# CLDFLAGS = -arch i386 -arch ppc
--# CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -Wall -isysroot /Developer/SDKs/MacOSX10.4u.sdk -I$(MOTIFI) -I/usr/X11R6/include
--# LDFLAGS = $(LIBLNK) $(CLDFLAGS) -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -L$(MOTIFL) -L/usr/X11R6/lib
-+# CLDFLAGS+= -arch i386 -arch ppc
-+# CFLAGS+= $(LIBINC) $(CLDFLAGS) -Wall -isysroot /Developer/SDKs/MacOSX10.4u.sdk -I$(MOTIFI) -I/usr/local/include
-+# LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -L$(MOTIFL) -L/usr/local/lib
- 
- # MKS Enterprise toolkit
- # MOTIFI = -I/usr/include
- # MOTIFL = -L/usr/lib
- # CC = cc
--# CLDFLAGS =
--# CFLAGS = $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI)
--# LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -W/subsystem:windows -s
-+# CLDFLAGS+=
-+# CFLAGS+= $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI)
-+# LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -W/subsystem:windows -s
- # XLIBS = -lXm -lXt -lX11
- # LIBS = $(XLIBS) $(LIBLIB) -lm
- 
-@@ -68,9 +68,9 @@ LIBS = $(XLIBS) $(LIBLIB) -lm
- # MOTIFI = -I/usr/include
- # MOTIFL = -L/usr/lib
- # CC = cc
--# CLDFLAGS = 
--# CFLAGS = $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI)
--# LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) 
-+# CLDFLAGS+= 
-+# CFLAGS+= $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI)
-+# LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) 
- # XLIBS = -lXm -lXt -lX11
- # LIBS = $(XLIBS) $(LIBLIB) -lsocket -lnsl -lc -lm /usr/ucblib/libucb.a
- # Note: if you get regex undefined, add -lgen to the end of LIBS.
-@@ -81,9 +81,9 @@ LIBS = $(XLIBS) $(LIBLIB) -lm
- # MOTIFI = -I/usr/dt/include
- # MOTIFL = -L/usr/dt/lib -R/usr/dt/lib
- # CC = cc
--# CLDFLAGS =
--# CFLAGS = $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI) -I/usr/openwin/include
--# LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L/usr/openwin/lib
-+# CLDFLAGS+=
-+# CFLAGS+= $(LIBINC) $(CLDFLAGS) -O -I$(MOTIFI) -I/usr/openwin/include
-+# LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L/usr/openwin/lib
- # XLIBS = -lXm -lXt -lX11
- # LIBS = $(XLIBS) $(LIBLIB) -lm -lsocket -lnsl
- 
-@@ -91,17 +91,17 @@ LIBS = $(XLIBS) $(LIBLIB) -lm
- # MOTIFI = -I/usr/include
- # MOTIFL = -L/usr/lib
- # CC = cc
--# CLDFLAGS =
--# CFLAGS = $(LIBINC) $(CLDFLAGS) -Aa -fast -I$(MOTIFI)
--# LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL)
-+# CLDFLAGS+=
-+# CFLAGS+= $(LIBINC) $(CLDFLAGS) -Aa -fast -I$(MOTIFI)
-+# LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL)
- 
- # AIX
- # MOTIFI = -I/usr/include
- # MOTIFL = -L/usr/lib
- # CC = xlc
--# CLDFLAGS =
--# CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -qlanglvl=ansi -qarch=com -qmaxmem=16384 -I$(MOTIFI)
--# LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL)
-+# CLDFLAGS+=
-+# CFLAGS+= $(LIBINC) $(CLDFLAGS) -qlanglvl=ansi -qarch=com -qmaxmem=16384 -I$(MOTIFI)
-+# LDFLAGS+= $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL)
- 
- .PRECIOUS:	xephem
- 
-@@ -189,18 +189,18 @@ OBJS =			\
+@@ -188,18 +188,18 @@ OBJS =			\
  all: libs xephem xephem.1
  
  xephem: $(INCS) $(OBJS)
diff --git a/astro/xephem/files/patch-auxil_mpcorb2edb.pl b/astro/xephem/files/patch-auxil_mpcorb2edb.pl
deleted file mode 100644
index f131d5cb2275..000000000000
--- a/astro/xephem/files/patch-auxil_mpcorb2edb.pl
+++ /dev/null
@@ -1,20 +0,0 @@
---- auxil/mpcorb2edb.pl.orig	2014-07-11 02:46:35 UTC
-+++ auxil/mpcorb2edb.pl
-@@ -78,7 +78,7 @@ EOF
- # setup cutoff mag
- my $dimmag = 13;			# dimmest mag to be saved in "bright" file
- # set site and file in case of -f
--my $MPCSITE = "http://www.minorplanetcenter.net";
-+my $MPCSITE = "https://www.minorplanetcenter.net";
- my $MPCFTPDIR = "/iau/MPCORB";
- my $MPCFILE = "MPCORB.DAT";
- my $MPCZIPFILE = "MPCORB.DAT.gz";
-@@ -247,7 +247,7 @@ sub fetch
- {
-     # transfer
-     print "Getting $MPCFTPDIR/$MPCZIPFILE from $MPCSITE...\n";
--    $cmd = "curl -connect-timeout 10 -s -u 'anonymous:xephem\@clearskyinstitute.com' $MPCSITE/$MPCFTPDIR/$MPCZIPFILE > $MPCZIPFILE";
-+    $cmd = "curl --connect-timeout 10 -s -u 'anonymous:xephem\@clearskyinstitute.com' $MPCSITE/$MPCFTPDIR/$MPCZIPFILE > $MPCZIPFILE";
-     print "$cmd\n";
-     !system "$cmd" or exit(1);
- 
diff --git a/astro/xephem/files/patch-earthmenu.c b/astro/xephem/files/patch-earthmenu.c
deleted file mode 100644
index a7ed20bbb5ad..000000000000
--- a/astro/xephem/files/patch-earthmenu.c
+++ /dev/null
@@ -1,81 +0,0 @@
---- earthmenu.c.orig	2012-11-23 04:15:39 UTC
-+++ earthmenu.c
-@@ -4886,8 +4886,11 @@ e_getwxgif()
- 	int nrawgif;
- 	char buf[1024];
- 	int w, h;
-+	XE_SSL_FD ssl_fd;
- 	int fd;
- 
-+	memset(&ssl_fd, 0, sizeof(ssl_fd));
-+
- 	/* open test case, else real network */
- 	fd = openh ("/tmp/latest_cmoll.gif", O_RDONLY);
- 	if (fd >= 0) {
-@@ -4902,12 +4905,12 @@ e_getwxgif()
- 	    stopd_up();
- 
- 	    /* make connection to server for the file */
--	    xe_msg (0, "Getting\nhttp://%s%s", wxhost, wxfile);
--	    (void) sprintf (buf, "GET http://%s%s HTTP/1.0\r\nUser-Agent: xephem/%s\r\n\r\n",
--						wxhost, wxfile, PATCHLEVEL);
--	    fd = httpGET (wxhost, buf, buf);
-+	    xe_msg (0, "Getting\nhttps://%s%s", wxhost, wxfile);
-+	    (void) sprintf (buf, "GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\nUser-Agent: xephem/%s\r\n\r\n",
-+						wxfile, wxhost, PATCHLEVEL);
-+	    fd = httpsGET (wxhost, buf, buf, &ssl_fd);
- 	    if (fd < 0) {
--		xe_msg (1, "http get:\n%s", buf);
-+		xe_msg (1, "https get:\n%s", buf);
- 		stopd_down();
- 		return (-1);
- 	    }
-@@ -4915,7 +4918,7 @@ e_getwxgif()
- 	    /* read header, looking for some header info */
- 	    isgif = 0;
- 	    length = 0;
--	    while (recvline (fd, buf, sizeof(buf)) > 1) {
-+	    while (ssl_recvline (&ssl_fd, buf, sizeof(buf)) > 1) {
- 		xe_msg (0, "Rcv: %s", buf);
- 		if (strstr (buf, "image/gif"))
- 		    isgif = 1;
-@@ -4923,9 +4926,10 @@ e_getwxgif()
- 		    length = atoi (buf+15);
- 	    }
- 	    if (!isgif) {
--		while (recvline (fd, buf, sizeof(buf)) > 1)
-+		while (ssl_recvline (&ssl_fd, buf, sizeof(buf)) > 1)
- 		    xe_msg (0, "Rcv: %s", buf);
--		close (fd);
-+		SSL_free (ssl_fd.ssl);
-+		close (ssl_fd.fd);
- 		stopd_down();
- 		return (-1);
- 	    }
-@@ -4936,12 +4940,13 @@ e_getwxgif()
- 	    pm_up();
- 	    for (nrawgif = 0; nrawgif < sizeof(rawgif); nrawgif += nr) {
- 		pm_set (100*nrawgif/length);
--		nr = readbytes (fd, rawgif+nrawgif, 4096);
-+		nr = SSL_read (ssl_fd.ssl, rawgif+nrawgif, 4096);
- 		if (nr < 0) {
--		    xe_msg (1, "%s:\n%s", wxhost, syserrstr());
-+		    xe_msg (1, "%s: ssl read error code: %d", wxhost, SSL_get_error(ssl_fd.ssl, nr));
- 		    stopd_down();
- 		    pm_down();
--		    close (fd);
-+		    SSL_free (ssl_fd.ssl);
-+		    close (ssl_fd.fd);
- 		    return (-1);
- 		}
- 		if (nr == 0)
-@@ -4949,7 +4954,8 @@ e_getwxgif()
- 	    }
- 	    stopd_down();
- 	    pm_down();
--	    close (fd);
-+	    SSL_free (ssl_fd.ssl);
-+	    close (ssl_fd.fd);
- 	    if (nr > 0) {
- 		xe_msg (1, "File too large");
- 		return (-1);
diff --git a/astro/xephem/files/patch-fallbacks.c b/astro/xephem/files/patch-fallbacks.c
deleted file mode 100644
index 8a00641d2090..000000000000
--- a/astro/xephem/files/patch-fallbacks.c
+++ /dev/null
@@ -1,17 +0,0 @@
---- fallbacks.c.orig	2015-04-09 00:20:19 UTC
-+++ fallbacks.c
-@@ -747,10 +747,10 @@ String fallbacks[] = {
-     "XEphem*WebDB*URL1.value: http://celestrak.com/NORAD/elements/science.txt",
-     "XEphem*WebDB*URL2.value: http://celestrak.com/NORAD/elements/tle-new.txt",
-     "XEphem*WebDB*URL3.value: http://celestrak.com/NORAD/elements/amateur.txt",
--    "XEphem*WebDB*URL4.value: http://www.minorplanetcenter.org/iau/Ephemerides/Comets/Soft03Cmt.txt",
--    "XEphem*WebDB*URL5.value: http://www.minorplanetcenter.org/iau/Ephemerides/CritList/Soft03CritList.txt",
--    "XEphem*WebDB*URL6.value: http://www.minorplanetcenter.org/iau/Ephemerides/Distant/Soft03Distant.txt",
--    "XEphem*WebDB*URL7.value: http://www.minorplanetcenter.org/iau/Ephemerides/Unusual/Soft03Unusual.txt",
-+    "XEphem*WebDB*URL4.value: https://www.minorplanetcenter.org/iau/Ephemerides/Comets/Soft03Cmt.txt",
-+    "XEphem*WebDB*URL5.value: https://www.minorplanetcenter.org/iau/Ephemerides/CritList/Soft03CritList.txt",
-+    "XEphem*WebDB*URL6.value: https://www.minorplanetcenter.org/iau/Ephemerides/Distant/Soft03Distant.txt",
-+    "XEphem*WebDB*URL7.value: https://www.minorplanetcenter.org/iau/Ephemerides/Unusual/Soft03Unusual.txt",
-     "XEphem*WebDB.x: 200",
-     "XEphem*WebDB.y: 200",
-     "XEphem*WeekStart.Monday.set: False",
diff --git a/astro/xephem/files/patch-net.h b/astro/xephem/files/patch-net.h
deleted file mode 100644
index 17a8e6e2c8a8..000000000000
--- a/astro/xephem/files/patch-net.h
+++ /dev/null
@@ -1,30 +0,0 @@
---- net.h.orig	2005-03-20 11:04:50 UTC
-+++ net.h
-@@ -20,6 +20,13 @@
- #include <sys/select.h>
- #endif
- 
-+#include <openssl/ssl.h>
-+
-+typedef struct {
-+	int fd;		//file desciptor for the underlying connection socket
-+	SSL *ssl;	//ssl connection for use with SSL_read( )and SSL_write()
-+} XE_SSL_FD;
-+
- /* support functions */
- 
- extern int httpGET (char *host, char *GETcmd, char msg[]);
-@@ -29,8 +36,11 @@ extern int readbytes (int fd, unsigned char buf[], int
- extern int recvline (int fd, char buf[], int max);
- extern int recvlineb (int sock, char *buf, int size);
- extern int sendbytes (int fd, unsigned char buf[], int n);
--
--
-+extern int httpsGET (char *host, char *GETcmd, char msg[], XE_SSL_FD *ssl_fd);
-+extern int ssl_recvbytes (XE_SSL_FD *ssl_fd, unsigned char buf[], int n);
-+extern int ssl_readbytes (XE_SSL_FD *ssl_fd, unsigned char buf[], int n);
-+extern int ssl_recvline (XE_SSL_FD *ssl_fd, char buf[], int max);
-+extern int ssl_recvlineb (XE_SSL_FD *ssl_fd, char *buf, int size);
- 
- /* For RCS Only -- Do Not Edit
-  * @(#) $RCSfile: net.h,v $ $Date: 2003/03/17 07:26:21 $ $Revision: 1.3 $ $Name:  $
diff --git a/astro/xephem/files/patch-netmenu.c b/astro/xephem/files/patch-netmenu.c
deleted file mode 100644
index 6ef0ab17687b..000000000000
--- a/astro/xephem/files/patch-netmenu.c
+++ /dev/null
@@ -1,273 +0,0 @@
---- netmenu.c.orig	2010-10-06 21:12:40 UTC
-+++ netmenu.c
-@@ -9,6 +9,8 @@
- #include <string.h>
- #include <unistd.h>
- 
-+#include <openssl/ssl.h>
-+
- #include <Xm/Form.h>
- #include <Xm/Label.h>
- #include <Xm/PushB.h>
-@@ -70,12 +72,24 @@ static int rb_unk;		/* index of first unknown char */
- 
- static char netcategory[] = "Network";	/* Save category */
- 
-+static SSL_METHOD *ssl_method;	/* global ssl dispatch structure for creating a ssl context */
-+static SSL_CTX *ssl_ctx;	/* global ssl context structure for creating ssl connections */
-+
- /* call to set up without actually bringing up the menus.
-  */
- void
- net_create()
- {
- 	if (!netshell_w) {
-+	    if (SSL_library_init() < 0) {
-+		fprintf (stderr, "Could not initialize the OpenSSL library !\n");
-+	    } else {
-+		ssl_method = SSLv23_client_method();	/* deprecated since openssl 1.1.x */
-+//		ssl_method = TLS_client_method();	/* since openssl 1.1.x */
-+		ssl_ctx = SSL_CTX_new (ssl_method);
-+		SSL_CTX_set_options (ssl_ctx, SSL_OP_NO_SSLv2);
-+	    };
-+
- 	    net_create_form();
- 	    (void) net_save();	/* confirming here is just annoying */
- 	}
-@@ -251,8 +265,8 @@ char msg[])	/* return diagnostic message here, if retu
-             struct {
- 		unsigned char  VN;	/* version number */
- 		unsigned char  CD;	/* command code */
--		unsigned short DSTPORT;	/* destination port */
--		unsigned long  DSTIP;	/* destination IP addres */
-+		uint16_t       DSTPORT;	/* destination port */
-+		uint32_t       DSTIP;	/* destination IP address */
- 	    } SocksPacket;
- 
- 	    struct hostent *hs = gethostbyname (socks_host);
-@@ -390,7 +404,7 @@ readbytes (int fd, unsigned char buf[], int n)
- 
- /* read up to and including the next '\n' from socket fd into buf[max].
-  * we silently ignore all '\r'. we add a trailing '\0'.
-- * return line lenth (not counting \0) if all ok, else -1.
-+ * return line length (not counting \0) if all ok, else -1.
-  * N.B. this never reads ahead -- if that's ok, recvlineb() is better
-  */
- int
-@@ -442,6 +456,216 @@ recvlineb (int sock, char *buf, int size)
- 		    break;
- 		}
- 		nr = read (sock, rb_linebuf, sizeof(rb_linebuf));
-+		if (nr <= 0) {
-+		    ok = nr;
-+		    rb_next = 0;
-+		    rb_unk = 0;
-+		    break;
-+		}
-+		rb_next = 0;
-+		rb_unk = nr;
-+	    }
-+
-+	    if ((c = rb_linebuf[rb_next++]) != '\r')
-+		*buf++ = c;
-+
-+	} while (buf-origbuf < size && c != '\n');
-+
-+	/* always give back a real line regardless, else status */
-+	if (ok > 0) {
-+	    *buf = '\0';
-+	    ok = buf - origbuf;
-+	}
-+
-+	return (ok);
-+}
-+
-+/* open the host, do the given GET cmd, and return a socket fd for the result.
-+ * on success it fills the XE_SSL_FD structure for later use by SSL_read() and necessary cleanup.
-+ * return -1 and with excuse in msg[], else 0 if ok.
-+ * N.B. can be called before we are created if net set in app defaults.
-+ */
-+int
-+httpsGET (char *host, char *GETcmd, char msg[], XE_SSL_FD *ssl_fd)
-+{
-+	char buf[2048];
-+	int fd;
-+	int connected;
-+	SSL *ssl;
-+	int n;
-+	int ret;
-+	int httpsport = 443;
-+
-+	/* open connection */
-+	if (proxy_on) {
-+	    fd = mkconnection (proxy_host, proxy_port, msg);
-+	    if (fd < 0)
-+		return (-1);
-+
-+	    /* fill buf with CONNECT */
-+	    (void) sprintf (buf, "CONNECT %1$s:%2$d HTTP/1.0\r\nUser-Agent: xephem/%3$s\r\nHost: %1$s:%2$d\r\n\r\n", host, httpsport, PATCHLEVEL);
-+
-+	    /* add proxy auth if enabled */
-+	    if (!auth_w)
-+		net_create_form();
-+	    if (XmToggleButtonGetState (auth_w))
-+		addAuth(buf);
-+
-+	    /* log it */
-+	    xe_msg (0, "https proxy connect: %s", buf);
-+
-+	    /* send it */
-+	    n = strlen (buf);
-+	    if (sendbytes(fd, (unsigned char *)buf, n) < 0) {
-+		(void) sprintf (msg, "%s: send error: %s", proxy_host, syserrstr());
-+		(void) close (fd);
-+		return (-1);
-+	    }
-+
-+	    connected = 0;
-+	    while (recvline (fd, buf, sizeof(buf)) > 1) {
-+		xe_msg (0, "Rcv: %s", buf);
-+		if (strstr (buf, "200 "))
-+		    connected = 1;
-+	    }
-+	    if (!connected) {
-+		(void) sprintf (msg, "%s: connect error: %s", proxy_host, syserrstr());
-+		(void) close (fd);
-+		return (-1);
-+	    }
-+	} else {
-+	    /* SOCKS or direct are both handled by mkconnection() */
-+	    fd = mkconnection (host, httpsport, msg);
-+	    if (fd < 0)
-+		return (-1);
-+	}
-+
-+	/* fill buf with GETcmd */
-+	(void) sprintf (buf, "%s", GETcmd);
-+
-+	/* start ssl connection */
-+	ssl = SSL_new (ssl_ctx);
-+	SSL_set_fd (ssl, fd);
-+	SSL_connect (ssl);
-+
-+	/* log it */
-+	xe_msg (0, "https: %s", buf);
-+
-+	/* send it */
-+	n = strlen (buf);
-+	ret = SSL_write (ssl, (unsigned char *)buf, n);
-+	if (ret <= 0) {
-+	    (void) sprintf (msg, "%s: ssl send error code: %d", host, SSL_get_error (ssl, ret));
-+	    (void) SSL_free (ssl);
-+	    (void) close (fd);
-+	    return (-1);
-+	}
-+
-+	/* caller can read response */
-+	ssl_fd->fd = fd;
-+	ssl_fd->ssl = ssl;
-+	return (fd);
-+}
-+
-+/* receive exactly n bytes from ssl connection ssl_fd into buf.
-+ * return -1, 0 or n.
-+ * N.B. with fallback to ordinary read from socket if ssl_fd->ssl is NULL
-+ */
-+int
-+ssl_recvbytes (XE_SSL_FD *ssl_fd, unsigned char buf[], int n)
-+{
-+	int ns, tot;
-+
-+	for (tot = 0; tot < n; tot += ns) {
-+	    if (tout (TOUT, ssl_fd->fd, 0) < 0)
-+		return (-1);
-+	    if (ssl_fd->ssl)
-+		ns = SSL_read (ssl_fd->ssl, (void *)(buf+tot), n-tot);
-+	    else
-+		ns = read (ssl_fd->fd, (void *)(buf+tot), n-tot);
-+	    if (ns <= 0)
-+		return (ns);
-+	}
-+	return (n);
-+}
-+
-+/* like read(2) except we time out and allow user to cancel.
-+ * receive up to n bytes from ssl connection ssl_fd into buf.
-+ * return count, or 0 on eof or -1 on error.
-+ * N.B. with fallback to ordinary read from socket if ssl_fd->ssl is NULL
-+ */
-+int
-+ssl_readbytes (XE_SSL_FD *ssl_fd, unsigned char buf[], int n)
-+{
-+	int ns;
-+
-+	if (tout (TOUT, ssl_fd->fd, 0) < 0)
-+	    return (-1);
-+	if (ssl_fd->ssl)
-+	    ns = SSL_read (ssl_fd->ssl, (void *)buf, n);
-+	else
-+	    ns = read (ssl_fd->fd, (void *)buf, n);
-+	return (ns);
-+}
-+
-+/* read up to and including the next '\n' from ssl into buf[max].
-+ * we silently ignore all '\r'. we add a trailing '\0'.
-+ * return line length (not counting \0) if all ok, else -1.
-+ * N.B. with fallback to ordinary read from socket if ssl_fd->ssl is NULL
-+ */
-+int
-+ssl_recvline (XE_SSL_FD *ssl_fd, char buf[], int max)
-+{
-+	unsigned char c;
-+	int n;
-+
-+	max--;	/* leave room for trailing \0 */
-+
-+	for (n = 0; n < max && ssl_recvbytes (ssl_fd, &c, 1) == 1; ) {
-+	    if (c != '\r') {
-+		buf[n++] = c;
-+		if (c == '\n') {
-+		    buf[n] = '\0';
-+		    return (n);
-+		}
-+	    }
-+	}
-+
-+	return (-1);
-+}
-+
-+/* rather like ssl_recvline but reads ahead in big chunk for efficiency.
-+ * return length if read a line ok, 0 if hit eof, -1 if error.
-+ * N.B. we silently swallow all '\r'.
-+ * N.B. we read ahead and can hide bytes after each call.
-+ * N.B. with fallback to ordinary read from socket if ssl_fd->ssl is NULL
-+ */
-+int
-+ssl_recvlineb (XE_SSL_FD *ssl_fd, char *buf, int size)
-+{
-+	char *origbuf = buf;		/* save to prevent overfilling buf */
-+	char c = '\0';
-+	int ok = 1;
-+
-+	/* always leave room for trailing \n */
-+	size -= 1;
-+
-+	/* read and copy linebuf[next] to buf until buf fills or copied a \n */
-+	do {
-+
-+	    if (rb_next >= rb_unk) {
-+		/* linebuf is empty -- refill */
-+
-+		int nr;
-+
-+		if (tout (TOUT, ssl_fd->fd, 0) < 0) {
-+		    nr = -1;
-+		    break;
-+		}
-+		if (ssl_fd->ssl)
-+		    nr = SSL_read (ssl_fd->ssl, rb_linebuf, sizeof(rb_linebuf));
-+		else
-+		    nr = read (ssl_fd->fd, rb_linebuf, sizeof(rb_linebuf));
- 		if (nr <= 0) {
- 		    ok = nr;
- 		    rb_next = 0;
diff --git a/astro/xephem/files/patch-sunmenu.c b/astro/xephem/files/patch-sunmenu.c
deleted file mode 100644
index 6f028907bd80..000000000000
--- a/astro/xephem/files/patch-sunmenu.c
+++ /dev/null
@@ -1,87 +0,0 @@
---- sunmenu.c.orig	2012-04-01 22:38:50 UTC
-+++ sunmenu.c
-@@ -884,9 +884,11 @@ readSOHOImage()
- 	int isjpeg, jpegl;
- 	int njpeg;
- 	unsigned char *jpeg;
-+	XE_SSL_FD ssl_fd;
- 	int fd, nr;
- 	struct tm tm;
- 
-+	memset(&ssl_fd, 0, sizeof(ssl_fd));
- 	memset(&tm, 0, sizeof(struct tm));
- 
- 	/* get desired type and size */
-@@ -899,18 +901,18 @@ readSOHOImage()
- 
- 	/* build GET command */
- 	sprintf (get, "GET http://%s%s HTTP/1.0\r\nUser-Agent: xephem/%s\r\n\r\n", sohohost, fn, PATCHLEVEL);
--
-+	
- 	/* query server */
--	fd = httpGET (sohohost, get, buf);
-+	fd = httpsGET (sohohost, get, buf, &ssl_fd);
- 	if (fd < 0) {
--	    xe_msg (1, "http get: %s", buf);
-+	    xe_msg (1, "https get: %s", buf);
- 	    return (-1);
- 	}
- 
- 	/* read header (everything to first blank line), looking for jpeg */
- 	isjpeg = 0;
- 	jpegl = 0;
--	while (recvline (fd, buf, sizeof(buf)) > 1) {
-+	while (ssl_recvline (&ssl_fd, buf, sizeof(buf)) > 1) {
- 	    xe_msg (0, "Rcv: %s", buf);
- 	    if (strstr (buf, "Content-Type:") && strstr (buf, "image/jpeg"))
- 		isjpeg = 1;
-@@ -923,15 +925,17 @@ readSOHOImage()
- 	    }
- 	}
- 	if (!isjpeg) {
--	    while (recvline (fd, buf, sizeof(buf)) > 0)
-+	    while (ssl_recvline (&ssl_fd, buf, sizeof(buf)) > 0)
- 		xe_msg (0, "Rcv: %s", buf);
- 	    xe_msg (1, "Error talking to SOHO .. see File->System log\n");
--	    close (fd);
-+	    SSL_free (ssl_fd.ssl);
-+	    close (ssl_fd.fd);
- 	    return (-1);
- 	}
- 	if (jpegl == 0) {
- 	    xe_msg (1, "No Content-Length in header");
--	    close (fd);
-+	    SSL_free (ssl_fd.ssl);
-+	    close (ssl_fd.fd);
- 	    return (-1);
- 	}
- 
-@@ -941,20 +945,22 @@ readSOHOImage()
- 	for (njpeg = 0; njpeg < jpegl; njpeg += nr) {
- 	    pm_set (100*njpeg/jpegl);
- 	    jpeg = (unsigned char *) XtRealloc ((char*)jpeg, njpeg+NSREAD);
--	    nr = readbytes (fd, jpeg+njpeg, NSREAD);
--	    if (nr < 0) {
--		xe_msg (1, "%s:\n%s", sohohost, syserrstr());
-+	    nr = SSL_read (ssl_fd.ssl, jpeg+njpeg, NSREAD);
-+	    if (nr <= 0) {
-+		xe_msg (1, "%s: ssl read error code: %d", sohohost, SSL_get_error(ssl_fd.ssl, nr));
- 		pm_down();
--		close (fd);
-+		SSL_free (ssl_fd.ssl);
-+		close (ssl_fd.fd);
- 		return (-1);
- 	    }
- 	    if (nr == 0)
- 		break;
- 	}
- 	pm_down();
--	close (fd);
-+	SSL_free (ssl_fd.ssl);
-+	close (ssl_fd.fd);
- 
--        sprintf (fn, "/%s_%s.jpg", filetime, filetype);
-+	sprintf (fn, "/%s_%s.jpg", filetime, filetype);
- 	/* display jpeg */
- 	if (displayPic (fn, jpeg, njpeg) < 0)
- 	    return (-1);
diff --git a/astro/xephem/files/patch-ucac.c b/astro/xephem/files/patch-ucac.c
deleted file mode 100644
index 1b9a7f2e4f02..000000000000
--- a/astro/xephem/files/patch-ucac.c
+++ /dev/null
@@ -1,63 +0,0 @@
---- ucac.c.orig	2013-03-02 02:41:37 UTC
-+++ ucac.c
-@@ -18,15 +18,15 @@
- 
- #define	MAXFOV	15.0			/* max fov, degs */
- 
--typedef unsigned char UC;		/* byte */
--typedef unsigned int UI;		/* unsigned integer */
-+typedef unsigned char XE_UC;		/* byte */
-+typedef unsigned int XE_UI;		/* unsigned integer */
- 
- /* access an I*2 or I*4 at offset i in UC array a in little-endian byte order.
-  * a bit slow but ultra portable.
-  */
--#define	I2(a,i)		((int)(short)((((UI)(a)[i]) | (((UI)(a)[i+1])<<8))))
--#define	I4(a,i)		((int)((((UI)(a)[i]) | (((UI)(a)[i+1])<<8) | \
--				(((UI)(a)[i+2])<<16) | (((UI)(a)[i+3])<<24))))
-+#define	I2(a,i)		((int)(short)((((XE_UI)(a)[i]) | (((XE_UI)(a)[i+1])<<8))))
-+#define	I4(a,i)		((int)((((XE_UI)(a)[i]) | (((XE_UI)(a)[i+1])<<8) | \
-+				(((XE_UI)(a)[i+2])<<16) | (((XE_UI)(a)[i+3])<<24))))
- 
- /* keep track of an array of ObjF */
- typedef struct {
-@@ -48,9 +48,9 @@ typedef struct {
- 
- #define	DPMAS	(1.0/3600000.0)		/* degrees per milliarcsecond */
- 
--typedef UC U2Star[44];			/* UCAC2 record */
--typedef UC U3Star[84];			/* UCAC3 record */
--typedef UC U4Star[78];			/* UCAC4 record */
-+typedef XE_UC U2Star[44];		/* UCAC2 record */
-+typedef XE_UC U3Star[84];		/* UCAC3 record */
-+typedef XE_UC U4Star[78];		/* UCAC4 record */
- static char *basedir;			/* full dir with zone files and index */
- static FILE *indexfp;			/* index file handle */
- 
-@@ -293,7 +293,7 @@ static int
- read4Index (int rz, int dz, int *nskip, int *nnew)
- {
- 	off_t offset;
--	UC i4[4];
-+	XE_UC i4[4];
- 
- 	offset = (rz*NZH4 + dz)*sizeof(i4);
- 	if (fseek (indexfp, offset, SEEK_SET) < 0) {
-@@ -508,7 +508,7 @@ static int
- read3Index (int rz, int dz, int *nskip, int *nnew)
- {
- 	off_t offset;
--	UC i4[4];
-+	XE_UC i4[4];
- 
- 	offset = (rz*NZH + dz)*sizeof(i4);
- 	if (fseek (indexfp, offset, SEEK_SET) < 0) {
-@@ -663,7 +663,7 @@ static int
- get2N (int rz, int dz, int *idp)
- {
- 	off_t offset;
--	UC nat[4];
-+	XE_UC nat[4];
- 
- 	offset = (dz*NZW + rz)*sizeof(nat);
- 	if (fseek (indexfp, offset, SEEK_SET) < 0)
diff --git a/astro/xephem/files/patch-usno.c b/astro/xephem/files/patch-usno.c
deleted file mode 100644
index af6acd1f2cab..000000000000
--- a/astro/xephem/files/patch-usno.c
+++ /dev/null
@@ -1,49 +0,0 @@
---- usno.c.orig	2005-03-20 11:04:51 UTC
-+++ usno.c
-@@ -14,8 +14,8 @@
- #define	CATBPR	12	/* bytes per star record in .cat file */
- #define	ACCBPR	30	/* bytes per record in .acc file */
- 
--typedef unsigned int UI;
--typedef unsigned char UC;
-+typedef unsigned int XE_UI;
-+typedef unsigned char XE_UC;
- 
- /* One Field star */
- typedef struct {
-@@ -36,7 +36,7 @@ static int corner (double r0, double d0, double rov, i
-     double lr[2], int *nd, double fd[2], double ld[2], int zone[2], char msg[]);
- static int fetchSwath (int zone, double maxmag, double fr, double lr,
-     double fd, double ld, StarArray *sap, char msg[]);
--static int crackCatBuf (UC buf[CATBPR], FieldStar *fsp);
-+static int crackCatBuf (XE_UC buf[CATBPR], FieldStar *fsp);
- static int addGS (StarArray *sap, FieldStar *fsp);
- 
- static char *cdpath;		/* where CD rom is mounted */
-@@ -236,7 +236,7 @@ double ld, StarArray *sap, char msg[])
- {
- 	char fn[1024];
- 	char buf[ACCBPR];
--	UC catbuf[CATBPR];
-+	XE_UC catbuf[CATBPR];
- 	FieldStar fs;
- 	long frec;
- 	long os;
-@@ -314,13 +314,13 @@ double ld, StarArray *sap, char msg[])
-  * return 0 if ok, else -1.
-  */
- static int
--crackCatBuf (UC buf[CATBPR], FieldStar *fsp)
-+crackCatBuf (XE_UC buf[CATBPR], FieldStar *fsp)
- {
--#define	BEUPACK(b) (((UI)((b)[0])<<24) | ((UI)((b)[1])<<16) | ((UI)((b)[2])<<8)\
--							    | ((UI)((b)[3])))
-+#define	BEUPACK(b) (((XE_UI)((b)[0])<<24) | ((XE_UI)((b)[1])<<16) | ((XE_UI)((b)[2])<<8)\
-+							    | ((XE_UI)((b)[3])))
- 	double ra, dec;
- 	int red, blu;
--	UI mag;
-+	XE_UI mag;
- 
- 	/* first 4 bytes are packed RA, big-endian */
- 	ra = BEUPACK(buf)/(100.0*3600.0*15.0);
diff --git a/astro/xephem/files/patch-webdbmenu.c b/astro/xephem/files/patch-webdbmenu.c
deleted file mode 100644
index be693998e5c2..000000000000
--- a/astro/xephem/files/patch-webdbmenu.c
+++ /dev/null
@@ -1,104 +0,0 @@
---- webdbmenu.c.orig	2012-11-23 05:22:09 UTC
-+++ webdbmenu.c
-@@ -404,6 +404,10 @@ getURL (url)
- char *url;
- {
- 	static char http[] = "http://";
-+	static char https[] = "https://";
-+	char *transport = http;
-+	int ltransport = strlen (transport);
-+	int ishttp = 0;
- 	char buf[512], msg[1024];
- 	char l0[512], l1[512], l2[512];
- 	char *l0p = l0, *l1p = l1, *l2p = l2;
-@@ -411,21 +415,31 @@ char *url;
- 	char *slash, *dot;
- 	char filename[256];
- 	FILE *fp;
-+	XE_SSL_FD ssl_fd;
- 	int sockfd;
- 	int nfound;
- 
-+	memset(&ssl_fd, 0, sizeof(ssl_fd));
-+
- 	/* start */
- 	watch_cursor(1);
- 	l0[0] = l1[0] = l2[0] = '\0';
- 
- 	/* find transport and host */
--	if (strncmp (url, http, 7)) {
--	    xe_msg (1, "URL must begin with %s", http);
-+	if (!strncmp (url, transport, ltransport)) {
-+	    ishttp = 1;
-+	} else {
-+	    transport = https;
-+	    ltransport = strlen (transport);
-+	}
-+
-+	if ((!ishttp) && (strncmp (url, transport, ltransport))) {
-+	    xe_msg (1, "URL must begin with %s or %s", http, https);
- 	    watch_cursor (0);
- 	    return;
- 	}
- 
--	slash = strchr (url+7, '/');
-+	slash = strchr (url+ltransport, '/');
- 	dot = strrchr (url, '.');
- 	if (!slash || !dot) {
- 	    xe_msg (1, "Badly formed URL");
-@@ -434,11 +448,16 @@ char *url;
- 	}
- 
- 	/* connect to check url */
--	sprintf (host, "%.*s", (int)(slash-url-7), url+7);
-+	sprintf (host, "%.*s", (int)(slash-url-ltransport), url+ltransport);
- 	sprintf (buf, "GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\nUser-Agent: xephem/%s\r\n\r\n",
- 						url, host, PATCHLEVEL);
- 	stopd_up();
--	sockfd = httpGET (host, buf, msg);
-+	if (ishttp) {
-+	    sockfd = httpGET (host, buf, msg);
-+	    ssl_fd.fd = sockfd;
-+	} else {
-+	    sockfd = httpsGET (host, buf, msg, &ssl_fd);
-+	}
- 	if (sockfd < 0) {
- 	    xe_msg (1, "http GET to %s failed: %s%s\n", host, buf, msg);
- 	    stopd_down();
-@@ -447,20 +466,22 @@ char *url;
- 	}
- 
- 	/* create local file */
--	slash = strrchr (url+7, '/');
-+	slash = strrchr (url+ltransport, '/');
- 	sprintf (filename, "%s/%.*sedb", getPrivateDir(), (int)(dot-slash), slash+1);
*** 92 LINES SKIPPED ***