diff options
author | jpaetzel <jpaetzel@FreeBSD.org> | 2019-03-24 07:22:06 +0800 |
---|---|---|
committer | jpaetzel <jpaetzel@FreeBSD.org> | 2019-03-24 07:22:06 +0800 |
commit | e51630f0d52e3c02949324407eb8a2180a9cae8d (patch) | |
tree | a068c58b24d726b26b5edf8b1921656b05b594e3 /astro/xephem/files | |
parent | 2cbad1d71fe9fea3969ac89b1b362215dd9c1444 (diff) | |
download | freebsd-ports-gnome-e51630f0d52e3c02949324407eb8a2180a9cae8d.tar.gz freebsd-ports-gnome-e51630f0d52e3c02949324407eb8a2180a9cae8d.tar.zst freebsd-ports-gnome-e51630f0d52e3c02949324407eb8a2180a9cae8d.zip |
Several improvements
- Fix the perl shebang and set the execute bit on two perl scripts
that are installed by the port.
- Incorporate patches that allow HTTPS updates in the app to work.
Suggested by: Scott C. Allendorf <scott-allendorf@uiowa.edu>
Diffstat (limited to 'astro/xephem/files')
-rw-r--r-- | astro/xephem/files/patch-Makefile | 109 | ||||
-rw-r--r-- | astro/xephem/files/patch-auxil_mpcorb2edb.pl | 11 | ||||
-rw-r--r-- | astro/xephem/files/patch-earthmenu.c | 81 | ||||
-rw-r--r-- | astro/xephem/files/patch-fallbacks.c | 17 | ||||
-rw-r--r-- | astro/xephem/files/patch-net.h | 30 | ||||
-rw-r--r-- | astro/xephem/files/patch-sunmenu.c | 87 | ||||
-rw-r--r-- | astro/xephem/files/patch-usno.c | 49 | ||||
-rw-r--r-- | astro/xephem/files/patch-webdbmenu.c | 104 | ||||
-rw-r--r-- | astro/xephem/files/patch-xephem.h | 16 |
9 files changed, 494 insertions, 10 deletions
diff --git a/astro/xephem/files/patch-Makefile b/astro/xephem/files/patch-Makefile index eb38638c46a3..4ed3421fa34f 100644 --- a/astro/xephem/files/patch-Makefile +++ b/astro/xephem/files/patch-Makefile @@ -1,11 +1,11 @@ ---- Makefile.orig 2015-09-14 09:37:09.737810488 -0500 -+++ Makefile 2015-09-14 09:45:54.470774555 -0500 -@@ -23,18 +23,18 @@ +--- Makefile.orig 2015-08-09 21:36:50 UTC ++++ Makefile +@@ -23,44 +23,44 @@ MOTIFI = $(MOTIF) MOTIFL = $(MOTIF) endif ifndef MOTIFI -MOTIFI = /usr/include -+MOTIFI = %%LOCALBASE%%/include ++MOTIFI = /usr/local/include endif ifndef MOTIFL -MOTIFL = /usr/lib @@ -13,18 +13,107 @@ endif # for linux and Apple OS X - CC = gcc - CLDFLAGS = -g +-CC = gcc +-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 -+CFLAGS = $(LIBINC) $(CLDFLAGS) -Wall -I$(MOTIFI) -I%%LOCALBASE%%/include -+LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L%%LOCALBASE%%/lib +-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 -lXp -lXt -lXext -lXmu -lX11 -lXft - LIBS = $(XLIBS) $(LIBLIB) -lm ++LIBS = $(XLIBS) $(LIBLIB) -lm -lssl # static linking on Apple using X11 libs from ports -@@ -189,18 +189,18 @@ +-# 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 = \ 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 new file mode 100644 index 000000000000..7a1ff50bb929 --- /dev/null +++ b/astro/xephem/files/patch-auxil_mpcorb2edb.pl @@ -0,0 +1,11 @@ +--- 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"; diff --git a/astro/xephem/files/patch-earthmenu.c b/astro/xephem/files/patch-earthmenu.c new file mode 100644 index 000000000000..a7ed20bbb5ad --- /dev/null +++ b/astro/xephem/files/patch-earthmenu.c @@ -0,0 +1,81 @@ +--- 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 new file mode 100644 index 000000000000..8a00641d2090 --- /dev/null +++ b/astro/xephem/files/patch-fallbacks.c @@ -0,0 +1,17 @@ +--- 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 new file mode 100644 index 000000000000..17a8e6e2c8a8 --- /dev/null +++ b/astro/xephem/files/patch-net.h @@ -0,0 +1,30 @@ +--- 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-sunmenu.c b/astro/xephem/files/patch-sunmenu.c new file mode 100644 index 000000000000..6f028907bd80 --- /dev/null +++ b/astro/xephem/files/patch-sunmenu.c @@ -0,0 +1,87 @@ +--- 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-usno.c b/astro/xephem/files/patch-usno.c new file mode 100644 index 000000000000..af6acd1f2cab --- /dev/null +++ b/astro/xephem/files/patch-usno.c @@ -0,0 +1,49 @@ +--- 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 new file mode 100644 index 000000000000..be693998e5c2 --- /dev/null +++ b/astro/xephem/files/patch-webdbmenu.c @@ -0,0 +1,104 @@ +--- 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); + fp = fopen (filename, "w"); + if (!fp) { + xe_msg (1, "%s:\n%s", filename, syserrstr()); + watch_cursor (0); +- close (sockfd); ++ if (!ishttp) ++ SSL_free (ssl_fd.ssl); ++ close (ssl_fd.fd); + return; + } + + /* copy to file, insuring only .edb lines. + */ + nfound = 0; +- while (recvlineb (sockfd, l2p, sizeof(l2)) > 0) { ++ while (ssl_recvlineb (&ssl_fd, l2p, sizeof(l2)) > 0) { + char *lrot; + Obj o; + +@@ -484,7 +505,9 @@ char *url; + + /* tidy up and done */ + fclose (fp); +- close (sockfd); ++ if (!ishttp) ++ SSL_free (ssl_fd.ssl); ++ close (ssl_fd.fd); + if (!nfound) { + xe_msg (1, "No objects in file"); + remove (filename); diff --git a/astro/xephem/files/patch-xephem.h b/astro/xephem/files/patch-xephem.h new file mode 100644 index 000000000000..fa90f66dfa6d --- /dev/null +++ b/astro/xephem/files/patch-xephem.h @@ -0,0 +1,16 @@ +--- xephem.h.orig 2012-12-30 17:01:12 UTC ++++ xephem.h +@@ -12,12 +12,12 @@ + + #include <stdarg.h> /* be kind to those who don't use xe_msg() */ + ++#include "net.h" /* has to be included before astro.h because of openssl */ + #include "astro.h" + #include "ip.h" + + /* local glue files */ + #include "map.h" +-#include "net.h" + #include "patchlevel.h" + #include "preferences.h" + #include "db.h" |