]> git.pld-linux.org Git - packages/xephem.git/commitdiff
- updated to 3.7.7 auto/th/xephem-3.7.7-1
authorBartek Szady <bszx@bszx.eu>
Tue, 25 Dec 2018 22:38:28 +0000 (23:38 +0100)
committerBartek Szady <bszx@bszx.eu>
Tue, 25 Dec 2018 22:38:28 +0000 (23:38 +0100)
- https support added
- uses system libjpeg

xephem-3.7.7_openssl.patch [new file with mode: 0644]
xephem-3.7.7_openssl_earthmenu.patch [new file with mode: 0644]
xephem-format.patch
xephem-makefile.patch
xephem.spec

diff --git a/xephem-3.7.7_openssl.patch b/xephem-3.7.7_openssl.patch
new file mode 100644 (file)
index 0000000..84e28e5
--- /dev/null
@@ -0,0 +1,676 @@
+Open SSL patch from Lutz Mändle < lmaendle at gmx dot net > available
+here (http://www.clearskyinstitute.com/xephem/contrib/xephem-3.7.7_openssl.patch).
+This is a new version dated Jan 2018 and replaces the previous one from
+Oct 2016. Many thanks for Lutz continued interest in XEphem.
+
+diff -Naur ./orig/xephem-3.7.7/GUI/xephem/auxil/mpcorb2edb.pl ./patched/xephem-3.7.7/GUI/xephem/auxil/mpcorb2edb.pl\r
+--- ./orig/xephem-3.7.7/GUI/xephem/auxil/mpcorb2edb.pl 2014-07-11 04:46:35.000000000 +0200\r
++++ ./patched/xephem-3.7.7/GUI/xephem/auxil/mpcorb2edb.pl      2018-01-08 02:54:53.603935652 +0100\r
+@@ -78,7 +78,7 @@\r
+ # setup cutoff mag\r
+ my $dimmag = 13;                      # dimmest mag to be saved in "bright" file\r
+ # set site and file in case of -f\r
+-my $MPCSITE = "http://www.minorplanetcenter.net";\r
++my $MPCSITE = "https://www.minorplanetcenter.net";\r
+ my $MPCFTPDIR = "/iau/MPCORB";\r
+ my $MPCFILE = "MPCORB.DAT";\r
+ my $MPCZIPFILE = "MPCORB.DAT.gz";\r
+diff -Naur ./orig/xephem-3.7.7/GUI/xephem/fallbacks.c ./patched/xephem-3.7.7/GUI/xephem/fallbacks.c\r
+--- ./orig/xephem-3.7.7/GUI/xephem/fallbacks.c 2015-04-09 02:20:19.000000000 +0200\r
++++ ./patched/xephem-3.7.7/GUI/xephem/fallbacks.c      2018-01-08 21:26:23.529915768 +0100\r
+@@ -747,10 +747,10 @@\r
+     "XEphem*WebDB*URL1.value: http://celestrak.com/NORAD/elements/science.txt",\r
+     "XEphem*WebDB*URL2.value: http://celestrak.com/NORAD/elements/tle-new.txt",\r
+     "XEphem*WebDB*URL3.value: http://celestrak.com/NORAD/elements/amateur.txt",\r
+-    "XEphem*WebDB*URL4.value: http://www.minorplanetcenter.org/iau/Ephemerides/Comets/Soft03Cmt.txt",\r
+-    "XEphem*WebDB*URL5.value: http://www.minorplanetcenter.org/iau/Ephemerides/CritList/Soft03CritList.txt",\r
+-    "XEphem*WebDB*URL6.value: http://www.minorplanetcenter.org/iau/Ephemerides/Distant/Soft03Distant.txt",\r
+-    "XEphem*WebDB*URL7.value: http://www.minorplanetcenter.org/iau/Ephemerides/Unusual/Soft03Unusual.txt",\r
++    "XEphem*WebDB*URL4.value: https://www.minorplanetcenter.org/iau/Ephemerides/Comets/Soft03Cmt.txt",\r
++    "XEphem*WebDB*URL5.value: https://www.minorplanetcenter.org/iau/Ephemerides/CritList/Soft03CritList.txt",\r
++    "XEphem*WebDB*URL6.value: https://www.minorplanetcenter.org/iau/Ephemerides/Distant/Soft03Distant.txt",\r
++    "XEphem*WebDB*URL7.value: https://www.minorplanetcenter.org/iau/Ephemerides/Unusual/Soft03Unusual.txt",\r
+     "XEphem*WebDB.x: 200",\r
+     "XEphem*WebDB.y: 200",\r
+     "XEphem*WeekStart.Monday.set: False",\r
+diff -Naur ./orig/xephem-3.7.7/GUI/xephem/Makefile ./patched/xephem-3.7.7/GUI/xephem/Makefile\r
+--- ./orig/xephem-3.7.7/GUI/xephem/Makefile    2015-08-09 23:36:50.000000000 +0200\r
++++ ./patched/xephem-3.7.7/GUI/xephem/Makefile 2018-01-08 21:20:45.200717791 +0100\r
+@@ -35,7 +35,7 @@\r
+ CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -Wall -I$(MOTIFI) -I/opt/X11/include\r
+ LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L/opt/X11/lib\r
+ XLIBS = -lXm -lXp -lXt -lXext -lXmu -lX11\r
+-LIBS = $(XLIBS) $(LIBLIB) -lm\r
++LIBS = $(XLIBS) $(LIBLIB) -lm -lssl\r
\r
+ # static linking on Apple using X11 libs from ports\r
+ # CC = gcc\r
+diff -Naur ./orig/xephem-3.7.7/GUI/xephem/net.h ./patched/xephem-3.7.7/GUI/xephem/net.h\r
+--- ./orig/xephem-3.7.7/GUI/xephem/net.h       2005-03-20 12:04:50.000000000 +0100\r
++++ ./patched/xephem-3.7.7/GUI/xephem/net.h    2018-01-08 19:45:27.561208366 +0100\r
+@@ -20,6 +20,13 @@\r
+ #include <sys/select.h>\r
+ #endif\r
\r
++#include <openssl/ssl.h>\r
++\r
++typedef struct {\r
++      int fd;         //file desciptor for the underlying connection socket\r
++      SSL *ssl;       //ssl connection for use with SSL_read( )and SSL_write()\r
++} XE_SSL_FD;\r
++\r
+ /* support functions */\r
\r
+ extern int httpGET (char *host, char *GETcmd, char msg[]);\r
+@@ -29,8 +36,11 @@\r
+ extern int recvline (int fd, char buf[], int max);\r
+ extern int recvlineb (int sock, char *buf, int size);\r
+ extern int sendbytes (int fd, unsigned char buf[], int n);\r
+-\r
+-\r
++extern int httpsGET (char *host, char *GETcmd, char msg[], XE_SSL_FD *ssl_fd);\r
++extern int ssl_recvbytes (XE_SSL_FD *ssl_fd, unsigned char buf[], int n);\r
++extern int ssl_readbytes (XE_SSL_FD *ssl_fd, unsigned char buf[], int n);\r
++extern int ssl_recvline (XE_SSL_FD *ssl_fd, char buf[], int max);\r
++extern int ssl_recvlineb (XE_SSL_FD *ssl_fd, char *buf, int size);\r
\r
+ /* For RCS Only -- Do Not Edit\r
+  * @(#) $RCSfile: net.h,v $ $Date: 2003/03/17 07:26:21 $ $Revision: 1.3 $ $Name:  $\r
+diff -Naur ./orig/xephem-3.7.7/GUI/xephem/netmenu.c ./patched/xephem-3.7.7/GUI/xephem/netmenu.c\r
+--- ./orig/xephem-3.7.7/GUI/xephem/netmenu.c   2010-10-06 23:12:40.000000000 +0200\r
++++ ./patched/xephem-3.7.7/GUI/xephem/netmenu.c        2018-01-08 22:02:16.090940142 +0100\r
+@@ -9,6 +9,8 @@\r
+ #include <string.h>\r
+ #include <unistd.h>\r
\r
++#include <openssl/ssl.h>\r
++\r
+ #include <Xm/Form.h>\r
+ #include <Xm/Label.h>\r
+ #include <Xm/PushB.h>\r
+@@ -70,12 +72,24 @@\r
\r
+ static char netcategory[] = "Network";        /* Save category */\r
\r
++static SSL_METHOD *ssl_method;        /* global ssl dispatch structure for creating a ssl context */\r
++static SSL_CTX *ssl_ctx;      /* global ssl context structure for creating ssl connections */\r
++\r
+ /* call to set up without actually bringing up the menus.\r
+  */\r
+ void\r
+ net_create()\r
+ {\r
+       if (!netshell_w) {\r
++          if (SSL_library_init() < 0) {\r
++              fprintf (stderr, "Could not initialize the OpenSSL library !\n");\r
++          } else {\r
++              ssl_method = SSLv23_client_method();    /* deprecated since openssl 1.1.x */\r
++//            ssl_method = TLS_client_method();       /* since openssl 1.1.x */\r
++              ssl_ctx = SSL_CTX_new (ssl_method);\r
++              SSL_CTX_set_options (ssl_ctx, SSL_OP_NO_SSLv2);\r
++          };\r
++\r
+           net_create_form();\r
+           (void) net_save();  /* confirming here is just annoying */\r
+       }\r
+@@ -251,8 +265,8 @@\r
+             struct {\r
+               unsigned char  VN;      /* version number */\r
+               unsigned char  CD;      /* command code */\r
+-              unsigned short DSTPORT; /* destination port */\r
+-              unsigned long  DSTIP;   /* destination IP addres */\r
++              uint16_t       DSTPORT; /* destination port */\r
++              uint32_t       DSTIP;   /* destination IP address */\r
+           } SocksPacket;\r
\r
+           struct hostent *hs = gethostbyname (socks_host);\r
+@@ -390,7 +404,7 @@\r
\r
+ /* read up to and including the next '\n' from socket fd into buf[max].\r
+  * we silently ignore all '\r'. we add a trailing '\0'.\r
+- * return line lenth (not counting \0) if all ok, else -1.\r
++ * return line length (not counting \0) if all ok, else -1.\r
+  * N.B. this never reads ahead -- if that's ok, recvlineb() is better\r
+  */\r
+ int\r
+@@ -445,6 +459,216 @@\r
+               if (nr <= 0) {\r
+                   ok = nr;\r
+                   rb_next = 0;\r
++                  rb_unk = 0;\r
++                  break;\r
++              }\r
++              rb_next = 0;\r
++              rb_unk = nr;\r
++          }\r
++\r
++          if ((c = rb_linebuf[rb_next++]) != '\r')\r
++              *buf++ = c;\r
++\r
++      } while (buf-origbuf < size && c != '\n');\r
++\r
++      /* always give back a real line regardless, else status */\r
++      if (ok > 0) {\r
++          *buf = '\0';\r
++          ok = buf - origbuf;\r
++      }\r
++\r
++      return (ok);\r
++}\r
++\r
++/* open the host, do the given GET cmd, and return a socket fd for the result.\r
++ * on success it fills the XE_SSL_FD structure for later use by SSL_read() and necessary cleanup.\r
++ * return -1 and with excuse in msg[], else 0 if ok.\r
++ * N.B. can be called before we are created if net set in app defaults.\r
++ */\r
++int\r
++httpsGET (char *host, char *GETcmd, char msg[], XE_SSL_FD *ssl_fd)\r
++{\r
++      char buf[2048];\r
++      int fd;\r
++      int connected;\r
++      SSL *ssl;\r
++      int n;\r
++      int ret;\r
++      int httpsport = 443;\r
++\r
++      /* open connection */\r
++      if (proxy_on) {\r
++          fd = mkconnection (proxy_host, proxy_port, msg);\r
++          if (fd < 0)\r
++              return (-1);\r
++\r
++          /* fill buf with CONNECT */\r
++          (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);\r
++\r
++          /* add proxy auth if enabled */\r
++          if (!auth_w)\r
++              net_create_form();\r
++          if (XmToggleButtonGetState (auth_w))\r
++              addAuth(buf);\r
++\r
++          /* log it */\r
++          xe_msg (0, "https proxy connect: %s", buf);\r
++\r
++          /* send it */\r
++          n = strlen (buf);\r
++          if (sendbytes(fd, (unsigned char *)buf, n) < 0) {\r
++              (void) sprintf (msg, "%s: send error: %s", proxy_host, syserrstr());\r
++              (void) close (fd);\r
++              return (-1);\r
++          }\r
++\r
++          connected = 0;\r
++          while (recvline (fd, buf, sizeof(buf)) > 1) {\r
++              xe_msg (0, "Rcv: %s", buf);\r
++              if (strstr (buf, "200 "))\r
++                  connected = 1;\r
++          }\r
++          if (!connected) {\r
++              (void) sprintf (msg, "%s: connect error: %s", proxy_host, syserrstr());\r
++              (void) close (fd);\r
++              return (-1);\r
++          }\r
++      } else {\r
++          /* SOCKS or direct are both handled by mkconnection() */\r
++          fd = mkconnection (host, httpsport, msg);\r
++          if (fd < 0)\r
++              return (-1);\r
++      }\r
++\r
++      /* fill buf with GETcmd */\r
++      (void) sprintf (buf, "%s", GETcmd);\r
++\r
++      /* start ssl connection */\r
++      ssl = SSL_new (ssl_ctx);\r
++      SSL_set_fd (ssl, fd);\r
++      SSL_connect (ssl);\r
++\r
++      /* log it */\r
++      xe_msg (0, "https: %s", buf);\r
++\r
++      /* send it */\r
++      n = strlen (buf);\r
++      ret = SSL_write (ssl, (unsigned char *)buf, n);\r
++      if (ret <= 0) {\r
++          (void) sprintf (msg, "%s: ssl send error code: %d", host, SSL_get_error (ssl, ret));\r
++          (void) SSL_free (ssl);\r
++          (void) close (fd);\r
++          return (-1);\r
++      }\r
++\r
++      /* caller can read response */\r
++      ssl_fd->fd = fd;\r
++      ssl_fd->ssl = ssl;\r
++      return (fd);\r
++}\r
++\r
++/* receive exactly n bytes from ssl connection ssl_fd into buf.\r
++ * return -1, 0 or n.\r
++ * N.B. with fallback to ordinary read from socket if ssl_fd->ssl is NULL\r
++ */\r
++int\r
++ssl_recvbytes (XE_SSL_FD *ssl_fd, unsigned char buf[], int n)\r
++{\r
++      int ns, tot;\r
++\r
++      for (tot = 0; tot < n; tot += ns) {\r
++          if (tout (TOUT, ssl_fd->fd, 0) < 0)\r
++              return (-1);\r
++          if (ssl_fd->ssl)\r
++              ns = SSL_read (ssl_fd->ssl, (void *)(buf+tot), n-tot);\r
++          else\r
++              ns = read (ssl_fd->fd, (void *)(buf+tot), n-tot);\r
++          if (ns <= 0)\r
++              return (ns);\r
++      }\r
++      return (n);\r
++}\r
++\r
++/* like read(2) except we time out and allow user to cancel.\r
++ * receive up to n bytes from ssl connection ssl_fd into buf.\r
++ * return count, or 0 on eof or -1 on error.\r
++ * N.B. with fallback to ordinary read from socket if ssl_fd->ssl is NULL\r
++ */\r
++int\r
++ssl_readbytes (XE_SSL_FD *ssl_fd, unsigned char buf[], int n)\r
++{\r
++      int ns;\r
++\r
++      if (tout (TOUT, ssl_fd->fd, 0) < 0)\r
++          return (-1);\r
++      if (ssl_fd->ssl)\r
++          ns = SSL_read (ssl_fd->ssl, (void *)buf, n);\r
++      else\r
++          ns = read (ssl_fd->fd, (void *)buf, n);\r
++      return (ns);\r
++}\r
++\r
++/* read up to and including the next '\n' from ssl into buf[max].\r
++ * we silently ignore all '\r'. we add a trailing '\0'.\r
++ * return line length (not counting \0) if all ok, else -1.\r
++ * N.B. with fallback to ordinary read from socket if ssl_fd->ssl is NULL\r
++ */\r
++int\r
++ssl_recvline (XE_SSL_FD *ssl_fd, char buf[], int max)\r
++{\r
++      unsigned char c;\r
++      int n;\r
++\r
++      max--;  /* leave room for trailing \0 */\r
++\r
++      for (n = 0; n < max && ssl_recvbytes (ssl_fd, &c, 1) == 1; ) {\r
++          if (c != '\r') {\r
++              buf[n++] = c;\r
++              if (c == '\n') {\r
++                  buf[n] = '\0';\r
++                  return (n);\r
++              }\r
++          }\r
++      }\r
++\r
++      return (-1);\r
++}\r
++\r
++/* rather like ssl_recvline but reads ahead in big chunk for efficiency.\r
++ * return length if read a line ok, 0 if hit eof, -1 if error.\r
++ * N.B. we silently swallow all '\r'.\r
++ * N.B. we read ahead and can hide bytes after each call.\r
++ * N.B. with fallback to ordinary read from socket if ssl_fd->ssl is NULL\r
++ */\r
++int\r
++ssl_recvlineb (XE_SSL_FD *ssl_fd, char *buf, int size)\r
++{\r
++      char *origbuf = buf;            /* save to prevent overfilling buf */\r
++      char c = '\0';\r
++      int ok = 1;\r
++\r
++      /* always leave room for trailing \n */\r
++      size -= 1;\r
++\r
++      /* read and copy linebuf[next] to buf until buf fills or copied a \n */\r
++      do {\r
++\r
++          if (rb_next >= rb_unk) {\r
++              /* linebuf is empty -- refill */\r
++\r
++              int nr;\r
++\r
++              if (tout (TOUT, ssl_fd->fd, 0) < 0) {\r
++                  nr = -1;\r
++                  break;\r
++              }\r
++              if (ssl_fd->ssl)\r
++                  nr = SSL_read (ssl_fd->ssl, rb_linebuf, sizeof(rb_linebuf));\r
++              else\r
++                  nr = read (ssl_fd->fd, rb_linebuf, sizeof(rb_linebuf));\r
++              if (nr <= 0) {\r
++                  ok = nr;\r
++                  rb_next = 0;\r
+                   rb_unk = 0;\r
+                   break;\r
+               }\r
+diff -Naur ./orig/xephem-3.7.7/GUI/xephem/sunmenu.c ./patched/xephem-3.7.7/GUI/xephem/sunmenu.c\r
+--- ./orig/xephem-3.7.7/GUI/xephem/sunmenu.c   2012-04-02 00:38:50.000000000 +0200\r
++++ ./patched/xephem-3.7.7/GUI/xephem/sunmenu.c        2018-01-08 22:09:43.585825210 +0100\r
+@@ -884,9 +884,11 @@\r
+       int isjpeg, jpegl;\r
+       int njpeg;\r
+       unsigned char *jpeg;\r
++      XE_SSL_FD ssl_fd;\r
+       int fd, nr;\r
+       struct tm tm;\r
\r
++      memset(&ssl_fd, 0, sizeof(ssl_fd));\r
+       memset(&tm, 0, sizeof(struct tm));\r
\r
+       /* get desired type and size */\r
+@@ -899,18 +901,18 @@\r
\r
+       /* build GET command */\r
+       sprintf (get, "GET http://%s%s HTTP/1.0\r\nUser-Agent: xephem/%s\r\n\r\n", sohohost, fn, PATCHLEVEL);\r
+-\r
++      \r
+       /* query server */\r
+-      fd = httpGET (sohohost, get, buf);\r
++      fd = httpsGET (sohohost, get, buf, &ssl_fd);\r
+       if (fd < 0) {\r
+-          xe_msg (1, "http get: %s", buf);\r
++          xe_msg (1, "https get: %s", buf);\r
+           return (-1);\r
+       }\r
\r
+       /* read header (everything to first blank line), looking for jpeg */\r
+       isjpeg = 0;\r
+       jpegl = 0;\r
+-      while (recvline (fd, buf, sizeof(buf)) > 1) {\r
++      while (ssl_recvline (&ssl_fd, buf, sizeof(buf)) > 1) {\r
+           xe_msg (0, "Rcv: %s", buf);\r
+           if (strstr (buf, "Content-Type:") && strstr (buf, "image/jpeg"))\r
+               isjpeg = 1;\r
+@@ -923,15 +925,17 @@\r
+           }\r
+       }\r
+       if (!isjpeg) {\r
+-          while (recvline (fd, buf, sizeof(buf)) > 0)\r
++          while (ssl_recvline (&ssl_fd, buf, sizeof(buf)) > 0)\r
+               xe_msg (0, "Rcv: %s", buf);\r
+           xe_msg (1, "Error talking to SOHO .. see File->System log\n");\r
+-          close (fd);\r
++          SSL_free (ssl_fd.ssl);\r
++          close (ssl_fd.fd);\r
+           return (-1);\r
+       }\r
+       if (jpegl == 0) {\r
+           xe_msg (1, "No Content-Length in header");\r
+-          close (fd);\r
++          SSL_free (ssl_fd.ssl);\r
++          close (ssl_fd.fd);\r
+           return (-1);\r
+       }\r
\r
+@@ -941,20 +945,22 @@\r
+       for (njpeg = 0; njpeg < jpegl; njpeg += nr) {\r
+           pm_set (100*njpeg/jpegl);\r
+           jpeg = (unsigned char *) XtRealloc ((char*)jpeg, njpeg+NSREAD);\r
+-          nr = readbytes (fd, jpeg+njpeg, NSREAD);\r
+-          if (nr < 0) {\r
+-              xe_msg (1, "%s:\n%s", sohohost, syserrstr());\r
++          nr = SSL_read (ssl_fd.ssl, jpeg+njpeg, NSREAD);\r
++          if (nr <= 0) {\r
++              xe_msg (1, "%s: ssl read error code: %d", sohohost, SSL_get_error(ssl_fd.ssl, nr));\r
+               pm_down();\r
+-              close (fd);\r
++              SSL_free (ssl_fd.ssl);\r
++              close (ssl_fd.fd);\r
+               return (-1);\r
+           }\r
+           if (nr == 0)\r
+               break;\r
+       }\r
+       pm_down();\r
+-      close (fd);\r
++      SSL_free (ssl_fd.ssl);\r
++      close (ssl_fd.fd);\r
\r
+-        sprintf (fn, "/%s_%s.jpg", filetime, filetype);\r
++      sprintf (fn, "/%s_%s.jpg", filetime, filetype);\r
+       /* display jpeg */\r
+       if (displayPic (fn, jpeg, njpeg) < 0)\r
+           return (-1);\r
+diff -Naur ./orig/xephem-3.7.7/GUI/xephem/ucac.c ./patched/xephem-3.7.7/GUI/xephem/ucac.c\r
+--- ./orig/xephem-3.7.7/GUI/xephem/ucac.c      2013-03-02 03:41:37.000000000 +0100\r
++++ ./patched/xephem-3.7.7/GUI/xephem/ucac.c   2018-01-08 21:53:08.398538689 +0100\r
+@@ -18,15 +18,15 @@\r
\r
+ #define       MAXFOV  15.0                    /* max fov, degs */\r
\r
+-typedef unsigned char UC;             /* byte */\r
+-typedef unsigned int UI;              /* unsigned integer */\r
++typedef unsigned char XE_UC;          /* byte */\r
++typedef unsigned int XE_UI;           /* unsigned integer */\r
\r
+ /* access an I*2 or I*4 at offset i in UC array a in little-endian byte order.\r
+  * a bit slow but ultra portable.\r
+  */\r
+-#define       I2(a,i)         ((int)(short)((((UI)(a)[i]) | (((UI)(a)[i+1])<<8))))\r
+-#define       I4(a,i)         ((int)((((UI)(a)[i]) | (((UI)(a)[i+1])<<8) | \\r
+-                              (((UI)(a)[i+2])<<16) | (((UI)(a)[i+3])<<24))))\r
++#define       I2(a,i)         ((int)(short)((((XE_UI)(a)[i]) | (((XE_UI)(a)[i+1])<<8))))\r
++#define       I4(a,i)         ((int)((((XE_UI)(a)[i]) | (((XE_UI)(a)[i+1])<<8) | \\r
++                              (((XE_UI)(a)[i+2])<<16) | (((XE_UI)(a)[i+3])<<24))))\r
\r
+ /* keep track of an array of ObjF */\r
+ typedef struct {\r
+@@ -48,9 +48,9 @@\r
\r
+ #define       DPMAS   (1.0/3600000.0)         /* degrees per milliarcsecond */\r
\r
+-typedef UC U2Star[44];                        /* UCAC2 record */\r
+-typedef UC U3Star[84];                        /* UCAC3 record */\r
+-typedef UC U4Star[78];                        /* UCAC4 record */\r
++typedef XE_UC U2Star[44];             /* UCAC2 record */\r
++typedef XE_UC U3Star[84];             /* UCAC3 record */\r
++typedef XE_UC U4Star[78];             /* UCAC4 record */\r
+ static char *basedir;                 /* full dir with zone files and index */\r
+ static FILE *indexfp;                 /* index file handle */\r
\r
+@@ -293,7 +293,7 @@\r
+ read4Index (int rz, int dz, int *nskip, int *nnew)\r
+ {\r
+       off_t offset;\r
+-      UC i4[4];\r
++      XE_UC i4[4];\r
\r
+       offset = (rz*NZH4 + dz)*sizeof(i4);\r
+       if (fseek (indexfp, offset, SEEK_SET) < 0) {\r
+@@ -508,7 +508,7 @@\r
+ read3Index (int rz, int dz, int *nskip, int *nnew)\r
+ {\r
+       off_t offset;\r
+-      UC i4[4];\r
++      XE_UC i4[4];\r
\r
+       offset = (rz*NZH + dz)*sizeof(i4);\r
+       if (fseek (indexfp, offset, SEEK_SET) < 0) {\r
+@@ -663,7 +663,7 @@\r
+ get2N (int rz, int dz, int *idp)\r
+ {\r
+       off_t offset;\r
+-      UC nat[4];\r
++      XE_UC nat[4];\r
\r
+       offset = (dz*NZW + rz)*sizeof(nat);\r
+       if (fseek (indexfp, offset, SEEK_SET) < 0)\r
+diff -Naur ./orig/xephem-3.7.7/GUI/xephem/usno.c ./patched/xephem-3.7.7/GUI/xephem/usno.c\r
+--- ./orig/xephem-3.7.7/GUI/xephem/usno.c      2005-03-20 12:04:51.000000000 +0100\r
++++ ./patched/xephem-3.7.7/GUI/xephem/usno.c   2016-10-26 18:59:16.469149437 +0200\r
+@@ -14,8 +14,8 @@\r
+ #define       CATBPR  12      /* bytes per star record in .cat file */\r
+ #define       ACCBPR  30      /* bytes per record in .acc file */\r
\r
+-typedef unsigned int UI;\r
+-typedef unsigned char UC;\r
++typedef unsigned int XE_UI;\r
++typedef unsigned char XE_UC;\r
\r
+ /* One Field star */\r
+ typedef struct {\r
+@@ -36,7 +36,7 @@\r
+     double lr[2], int *nd, double fd[2], double ld[2], int zone[2], char msg[]);\r
+ static int fetchSwath (int zone, double maxmag, double fr, double lr,\r
+     double fd, double ld, StarArray *sap, char msg[]);\r
+-static int crackCatBuf (UC buf[CATBPR], FieldStar *fsp);\r
++static int crackCatBuf (XE_UC buf[CATBPR], FieldStar *fsp);\r
+ static int addGS (StarArray *sap, FieldStar *fsp);\r
\r
+ static char *cdpath;          /* where CD rom is mounted */\r
+@@ -236,7 +236,7 @@\r
+ {\r
+       char fn[1024];\r
+       char buf[ACCBPR];\r
+-      UC catbuf[CATBPR];\r
++      XE_UC catbuf[CATBPR];\r
+       FieldStar fs;\r
+       long frec;\r
+       long os;\r
+@@ -314,13 +314,13 @@\r
+  * return 0 if ok, else -1.\r
+  */\r
+ static int\r
+-crackCatBuf (UC buf[CATBPR], FieldStar *fsp)\r
++crackCatBuf (XE_UC buf[CATBPR], FieldStar *fsp)\r
+ {\r
+-#define       BEUPACK(b) (((UI)((b)[0])<<24) | ((UI)((b)[1])<<16) | ((UI)((b)[2])<<8)\\r
+-                                                          | ((UI)((b)[3])))\r
++#define       BEUPACK(b) (((XE_UI)((b)[0])<<24) | ((XE_UI)((b)[1])<<16) | ((XE_UI)((b)[2])<<8)\\r
++                                                          | ((XE_UI)((b)[3])))\r
+       double ra, dec;\r
+       int red, blu;\r
+-      UI mag;\r
++      XE_UI mag;\r
\r
+       /* first 4 bytes are packed RA, big-endian */\r
+       ra = BEUPACK(buf)/(100.0*3600.0*15.0);\r
+diff -Naur ./orig/xephem-3.7.7/GUI/xephem/webdbmenu.c ./patched/xephem-3.7.7/GUI/xephem/webdbmenu.c\r
+--- ./orig/xephem-3.7.7/GUI/xephem/webdbmenu.c 2012-11-23 06:22:09.000000000 +0100\r
++++ ./patched/xephem-3.7.7/GUI/xephem/webdbmenu.c      2018-01-08 21:58:01.975042039 +0100\r
+@@ -404,6 +404,10 @@\r
+ char *url;\r
+ {\r
+       static char http[] = "http://";\r
++      static char https[] = "https://";\r
++      char *transport = http;\r
++      int ltransport = strlen (transport);\r
++      int ishttp = 0;\r
+       char buf[512], msg[1024];\r
+       char l0[512], l1[512], l2[512];\r
+       char *l0p = l0, *l1p = l1, *l2p = l2;\r
+@@ -411,21 +415,31 @@\r
+       char *slash, *dot;\r
+       char filename[256];\r
+       FILE *fp;\r
++      XE_SSL_FD ssl_fd;\r
+       int sockfd;\r
+       int nfound;\r
\r
++      memset(&ssl_fd, 0, sizeof(ssl_fd));\r
++\r
+       /* start */\r
+       watch_cursor(1);\r
+       l0[0] = l1[0] = l2[0] = '\0';\r
\r
+       /* find transport and host */\r
+-      if (strncmp (url, http, 7)) {\r
+-          xe_msg (1, "URL must begin with %s", http);\r
++      if (!strncmp (url, transport, ltransport)) {\r
++          ishttp = 1;\r
++      } else {\r
++          transport = https;\r
++          ltransport = strlen (transport);\r
++      }\r
++\r
++      if ((!ishttp) && (strncmp (url, transport, ltransport))) {\r
++          xe_msg (1, "URL must begin with %s or %s", http, https);\r
+           watch_cursor (0);\r
+           return;\r
+       }\r
\r
+-      slash = strchr (url+7, '/');\r
++      slash = strchr (url+ltransport, '/');\r
+       dot = strrchr (url, '.');\r
+       if (!slash || !dot) {\r
+           xe_msg (1, "Badly formed URL");\r
+@@ -434,11 +448,16 @@\r
+       }\r
\r
+       /* connect to check url */\r
+-      sprintf (host, "%.*s", (int)(slash-url-7), url+7);\r
++      sprintf (host, "%.*s", (int)(slash-url-ltransport), url+ltransport);\r
+       sprintf (buf, "GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\nUser-Agent: xephem/%s\r\n\r\n",\r
+                                               url, host, PATCHLEVEL);\r
+       stopd_up();\r
+-      sockfd = httpGET (host, buf, msg);\r
++      if (ishttp) {\r
++          sockfd = httpGET (host, buf, msg);\r
++          ssl_fd.fd = sockfd;\r
++      } else {\r
++          sockfd = httpsGET (host, buf, msg, &ssl_fd);\r
++      }\r
+       if (sockfd < 0) {\r
+           xe_msg (1, "http GET to %s failed: %s%s\n", host, buf, msg);\r
+           stopd_down();\r
+@@ -447,20 +466,22 @@\r
+       }\r
\r
+       /* create local file */\r
+-      slash = strrchr (url+7, '/');\r
++      slash = strrchr (url+ltransport, '/');\r
+       sprintf (filename, "%s/%.*sedb", getPrivateDir(), (int)(dot-slash), slash+1);\r
+       fp = fopen (filename, "w");\r
+       if (!fp) {\r
+           xe_msg (1, "%s:\n%s", filename, syserrstr());\r
+           watch_cursor (0);\r
+-          close (sockfd);\r
++          if (!ishttp)\r
++              SSL_free (ssl_fd.ssl);\r
++          close (ssl_fd.fd);\r
+           return;\r
+       }\r
\r
+       /* copy to file, insuring only .edb lines.\r
+        */\r
+       nfound = 0;\r
+-      while (recvlineb (sockfd, l2p, sizeof(l2)) > 0) {\r
++      while (ssl_recvlineb (&ssl_fd, l2p, sizeof(l2)) > 0) {\r
+           char *lrot;\r
+           Obj o;\r
\r
+@@ -484,7 +505,9 @@\r
\r
+       /* tidy up and done */\r
+       fclose (fp);\r
+-      close (sockfd);\r
++      if (!ishttp)\r
++          SSL_free (ssl_fd.ssl);\r
++      close (ssl_fd.fd);\r
+       if (!nfound) {\r
+           xe_msg (1, "No objects in file");\r
+           remove (filename);\r
+diff -Naur ./orig/xephem-3.7.7/GUI/xephem/xephem.h ./patched/xephem-3.7.7/GUI/xephem/xephem.h\r
+--- ./orig/xephem-3.7.7/GUI/xephem/xephem.h    2012-12-30 18:01:12.000000000 +0100\r
++++ ./patched/xephem-3.7.7/GUI/xephem/xephem.h 2016-10-26 20:09:47.000000000 +0200\r
+@@ -12,12 +12,12 @@\r
\r
+ #include <stdarg.h>           /* be kind to those who don't use xe_msg() */\r
\r
++#include "net.h"              /* has to be included before astro.h because of openssl */\r
+ #include "astro.h"\r
+ #include "ip.h"\r
\r
+ /* local glue files */\r
+ #include "map.h"\r
+-#include "net.h"\r
+ #include "patchlevel.h"\r
+ #include "preferences.h"\r
+ #include "db.h"\r
diff --git a/xephem-3.7.7_openssl_earthmenu.patch b/xephem-3.7.7_openssl_earthmenu.patch
new file mode 100644 (file)
index 0000000..6869fc0
--- /dev/null
@@ -0,0 +1,87 @@
+Here
+(http://www.clearskyinstitute.com/xephem/contrib/xephem-3.7.7_openssl_earthmenu.patch)
+is another patch from Mr. Mändl dated 2018 September. This one fixes the
+weather map in the Earth view which also now requires https. 
+
+diff -Naur ./orig/xephem-3.7.7/GUI/xephem/earthmenu.c ./patched/xephem-3.7.7/GUI/xephem/earthmenu.c\r
+--- ./orig/xephem-3.7.7/GUI/xephem/earthmenu.c 2012-11-23 05:15:39.000000000 +0100\r
++++ ./patched/xephem-3.7.7/GUI/xephem/earthmenu.c      2018-09-24 01:17:34.248048815 +0200\r
+@@ -4886,8 +4886,11 @@\r
+       int nrawgif;\r
+       char buf[1024];\r
+       int w, h;\r
++      XE_SSL_FD ssl_fd;\r
+       int fd;\r
\r
++      memset(&ssl_fd, 0, sizeof(ssl_fd));\r
++\r
+       /* open test case, else real network */\r
+       fd = openh ("/tmp/latest_cmoll.gif", O_RDONLY);\r
+       if (fd >= 0) {\r
+@@ -4902,12 +4905,12 @@\r
+           stopd_up();\r
\r
+           /* make connection to server for the file */\r
+-          xe_msg (0, "Getting\nhttp://%s%s", wxhost, wxfile);\r
+-          (void) sprintf (buf, "GET http://%s%s HTTP/1.0\r\nUser-Agent: xephem/%s\r\n\r\n",\r
+-                                              wxhost, wxfile, PATCHLEVEL);\r
+-          fd = httpGET (wxhost, buf, buf);\r
++          xe_msg (0, "Getting\nhttps://%s%s", wxhost, wxfile);\r
++          (void) sprintf (buf, "GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\nUser-Agent: xephem/%s\r\n\r\n",\r
++                                              wxfile, wxhost, PATCHLEVEL);\r
++          fd = httpsGET (wxhost, buf, buf, &ssl_fd);\r
+           if (fd < 0) {\r
+-              xe_msg (1, "http get:\n%s", buf);\r
++              xe_msg (1, "https get:\n%s", buf);\r
+               stopd_down();\r
+               return (-1);\r
+           }\r
+@@ -4915,7 +4918,7 @@\r
+           /* read header, looking for some header info */\r
+           isgif = 0;\r
+           length = 0;\r
+-          while (recvline (fd, buf, sizeof(buf)) > 1) {\r
++          while (ssl_recvline (&ssl_fd, buf, sizeof(buf)) > 1) {\r
+               xe_msg (0, "Rcv: %s", buf);\r
+               if (strstr (buf, "image/gif"))\r
+                   isgif = 1;\r
+@@ -4923,9 +4926,10 @@\r
+                   length = atoi (buf+15);\r
+           }\r
+           if (!isgif) {\r
+-              while (recvline (fd, buf, sizeof(buf)) > 1)\r
++              while (ssl_recvline (&ssl_fd, buf, sizeof(buf)) > 1)\r
+                   xe_msg (0, "Rcv: %s", buf);\r
+-              close (fd);\r
++              SSL_free (ssl_fd.ssl);\r
++              close (ssl_fd.fd);\r
+               stopd_down();\r
+               return (-1);\r
+           }\r
+@@ -4936,12 +4940,13 @@\r
+           pm_up();\r
+           for (nrawgif = 0; nrawgif < sizeof(rawgif); nrawgif += nr) {\r
+               pm_set (100*nrawgif/length);\r
+-              nr = readbytes (fd, rawgif+nrawgif, 4096);\r
++              nr = SSL_read (ssl_fd.ssl, rawgif+nrawgif, 4096);\r
+               if (nr < 0) {\r
+-                  xe_msg (1, "%s:\n%s", wxhost, syserrstr());\r
++                  xe_msg (1, "%s: ssl read error code: %d", wxhost, SSL_get_error(ssl_fd.ssl, nr));\r
+                   stopd_down();\r
+                   pm_down();\r
+-                  close (fd);\r
++                  SSL_free (ssl_fd.ssl);\r
++                  close (ssl_fd.fd);\r
+                   return (-1);\r
+               }\r
+               if (nr == 0)\r
+@@ -4949,7 +4954,8 @@\r
+           }\r
+           stopd_down();\r
+           pm_down();\r
+-          close (fd);\r
++          SSL_free (ssl_fd.ssl);\r
++          close (ssl_fd.fd);\r
+           if (nr > 0) {\r
+               xe_msg (1, "File too large");\r
+               return (-1);\r
index 2cfdb64b72846cd0490c260274fc715a2fa4ed68..3da8e65fd88c6c2f55fab2bded51ba742e02976c 100644 (file)
@@ -11,32 +11,6 @@ index 63a0065..16bf565 100644
        int tok = ERR;  /* just something illegal */
        char c;
  
-diff --git a/GUI/xephem/obslog.c b/GUI/xephem/obslog.c
-index e3912e2..7deb5a6 100644
---- a/GUI/xephem/obslog.c
-+++ b/GUI/xephem/obslog.c
-@@ -915,7 +915,7 @@ ol_writeLB()
-       fprintf (fp, "    </%s>\n", lbetag);
-       /* finished */
--      fprintf (fp, cltag);
-+      fprintf (fp, "%s", cltag);
-       xe_msg (1, "Added new log entry");
-       fclose (fp);
- }
-diff --git a/GUI/xephem/tools/indi/compiler.c b/GUI/xephem/tools/indi/compiler.c
-index 2e16d93..736f2a1 100644
---- a/GUI/xephem/tools/indi/compiler.c
-+++ b/GUI/xephem/tools/indi/compiler.c
-@@ -268,7 +268,7 @@ next_token ()
- {
-       static char toomv[] = "More than %d variables";
-       static char toomc[] = "More than %d constants";
--      static char badop[] = "Illegal operator";
-+      static const char badop[] = "Illegal operator";
-       int tok = ERR;  /* just something illegal */
-       char c;
 diff --git a/GUI/xephem/tools/lx200xed/lx200xed.c b/GUI/xephem/tools/lx200xed/lx200xed.c
 index 34bdb33..4c6e5b0 100644
 --- a/GUI/xephem/tools/lx200xed/lx200xed.c
index 3b75ed1cf149208c8f149b49dd6cd6f29ed30391..63877197dd27f3b3cf479267a114092896597249 100644 (file)
@@ -1,31 +1,29 @@
---- xephem-3.7.1.orig/GUI/xephem/Makefile      2005-11-18 14:43:09.000000000 +0100
-+++ xephem-3.7.1/GUI/xephem/Makefile   2006-07-22 18:28:04.305473250 +0200
+--- xephem-3.7.7/GUI/xephem/Makefile.orig      2015-08-09 23:36:50.000000000 +0200
++++ xephem-3.7.7/GUI/xephem/Makefile   2018-12-19 21:10:25.456956449 +0100
 @@ -10,8 +10,8 @@
  # one executable, xephem.
  
  # These -I and -L flags point to the supporting XEphem libraries
 -LIBINC = -I../../libastro -I../../libip -I../../liblilxml -I../../libjpegd -I../../libpng -I../../libz
 -LIBLNK = -L../../libastro -L../../libip -L../../liblilxml -L../../libjpegd -L../../libpng -L../../libz
-+LIBINC = -I../../libastro -I../../libip -I../../liblilxml -I../../libjpegd
-+LIBLNK = -L../../libastro -L../../libip -L../../liblilxml -L../../libjpegd
- LIBLIB = -lastro -lip -llilxml -ljpegd -lpng -lz
++LIBINC = -I../../libastro -I../../libip -I../../liblilxml
++LIBLNK = -L../../libastro -L../../libip -L../../liblilxml
+-LIBLIB = -lastro -lip -llilxml -ljpegd -lpng -lz
++LIBLIB = -lastro -lip -llilxml -ljpeg -lpng -lz
  
  # MOTIFI is the directory containing the Xm directory of include files.
-@@ -34,9 +34,9 @@
- # some systems now use just /usr/X11 (not /usr/X11R6)
+@@ -32,7 +32,7 @@
+ # for linux and Apple OS X
  CC = gcc
  CLDFLAGS = -g
--CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -Wall -I$(MOTIFI) -I/usr/X11R6/include
-+CFLAGS = $(LIBINC) $(CLDFLAGS) -Wall -I$(MOTIFI) -I/usr/X11R6/include
- LDFLAGS = $(LIBLNK) $(CLDFLAGS) -L$(MOTIFL) -L/usr/X11R6/lib
--XLIBS = $(MOTIFL)/libXm.a -lXp -lXt -lXext -lXmu -lX11
-+XLIBS = -lXm -lXp -lXt -lXext -lXmu -lX11
+-CFLAGS = $(LIBINC) $(CLDFLAGS) -O2 -Wall -I$(MOTIFI) -I/opt/X11/include
++CFLAGS = $(LIBINC) $(CLDFLAGS) -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
- # for ppc Apple OS X to make universal (i386 and ppc binary), requires
-@@ -191,8 +191,6 @@
+@@ -199,8 +199,5 @@
        cd ../../libip; make
-       cd ../../libjpegd; make
+-      cd ../../libjpegd; make
        cd ../../liblilxml; make
 -      cd ../../libpng; make
 -      cd ../../libz; make
index 582359dc6850bd24aafce981534e9830b6f8d2a9..c2193e2d20f4b205c6a4006ccf12dbcd7b99d5d3 100644 (file)
@@ -2,24 +2,26 @@
 # TODO: Check INDI interface (anyone with telescope?), probably change
 #      fifo dir (/usr/share/xephem/fifo) as it needs to be writeable.
 #      And how it cooperates with http://indi.sf.net?
-#      Consider using system-wide libjpeg instead of shipped libjpegd
 #
 Summary:       Interactive astronomy program
 Summary(pl.UTF-8):     Interaktywny program astronomiczny
 Name:          xephem
-Version:       3.7.4
-Release:       4
+Version:       3.7.7
+Release:       1
 License:       distributable with free-unices distros, free for non-profit non-commercial purposes
 Group:         X11/Applications/Science
-Source0:       http://97.74.56.125/free/%{name}-%{version}.tar.gz
-# Source0-md5: 4e9290609f36df469a2ba5a1b4fffd46
+Source0:       http://www.clearskyinstitute.com/xephem/%{name}-%{version}.tgz
+# Source0-md5: 27c67061a89085bf2b0d4e9deb758a79
 Source1:       %{name}.desktop
 Source2:       %{name}.png
 Source3:       %{name}_sites
 Patch0:                %{name}-makefile.patch
 Patch1:                %{name}-format.patch
+Patch2:                %{name}-3.7.7_openssl.patch
+Patch3:                %{name}-3.7.7_openssl_earthmenu.patch
 URL:           http://www.clearskyinstitute.com/xephem/
 BuildRequires: groff
+BuildRequires: libjpeg-devel
 BuildRequires: libpng-devel
 BuildRequires: motif-devel
 BuildRequires: sed >= 4.0
@@ -68,13 +70,14 @@ XEphemdbd - filtr do odnajdywania obiektów astronomicznych wg zadanych
 
 %prep
 %setup -q
+%patch2 -p3
+%patch3 -p3
 %patch0 -p1
 %patch1 -p1
 
 sed -i "s#X11R6/lib#X11R6/%{_lib}#g" GUI/xephem/Makefile
 sed -i "s#/usr/local#%{_datadir}#g" GUI/xephem/tools/xephemdbd/start-xephemdbd.pl
 
-mv GUI/xephem/tools/indi/README GUI/xephem/tools/indi/README-indi
 mv GUI/xephem/tools/lx200xed/README GUI/xephem/tools/lx200xed/README-lx200xed
 mv GUI/xephem/tools/xedb/README GUI/xephem/tools/xedb/README-xedb
 mv GUI/xephem/tools/xephemdbd/README GUI/xephem/tools/xephemdbd/README-xephemdbd
@@ -119,7 +122,7 @@ cd GUI/xephem
        CC="%{__cc}" \
        CFLAGS="-ffast-math %{rpmcflags} -I../../../../libastro"
 
-%{__make} -C tools/indi \
+%{__make} -C tools/simpleINDI \
        CC="%{__cc}" \
        CFLAGS="-ffast-math %{rpmcflags} -I../../../../liblilxml -I../../../../libastro -I../../../../libip"
 
@@ -128,7 +131,7 @@ rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{%{_bindir},%{_datadir}/%{name},%{_mandir}/man1} \
        $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir},%{_appdefsdir}}
 
-install GUI/xephem/xephem $RPM_BUILD_ROOT%{_bindir}
+cp -p GUI/xephem/xephem $RPM_BUILD_ROOT%{_bindir}
 cp -a GUI/xephem/auxil $RPM_BUILD_ROOT%{_datadir}/%{name}
 cp -a GUI/xephem/catalogs $RPM_BUILD_ROOT%{_datadir}/%{name}
 cp -a GUI/xephem/fifos $RPM_BUILD_ROOT%{_datadir}/%{name}
@@ -137,38 +140,21 @@ cp -a GUI/xephem/gallery $RPM_BUILD_ROOT%{_datadir}/%{name}
 cp -a GUI/xephem/help $RPM_BUILD_ROOT%{_datadir}/%{name}
 cp -a GUI/xephem/lo $RPM_BUILD_ROOT%{_datadir}/%{name}
 
-install GUI/xephem/xephem.man $RPM_BUILD_ROOT%{_mandir}/man1/xephem.1
+cp -p GUI/xephem/xephem.man $RPM_BUILD_ROOT%{_mandir}/man1/xephem.1
 
-install %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
-install %{SOURCE2} $RPM_BUILD_ROOT%{_pixmapsdir}
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
+cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_pixmapsdir}
 echo XEphem.ShareDir: %{_datadir}/%{name} > $RPM_BUILD_ROOT%{_appdefsdir}/XEphem
 
 # INDI drivers
-install GUI/xephem/tools/indi/cam $RPM_BUILD_ROOT%{_bindir}
-install GUI/xephem/tools/indi/ota $RPM_BUILD_ROOT%{_bindir}
-install GUI/xephem/tools/indi/security $RPM_BUILD_ROOT%{_bindir}
-install GUI/xephem/tools/indi/tmount $RPM_BUILD_ROOT%{_bindir}
-install GUI/xephem/tools/indi/wx $RPM_BUILD_ROOT%{_bindir}
-
-install GUI/xephem/tools/indi/evalINDI $RPM_BUILD_ROOT%{_bindir}
-install GUI/xephem/tools/indi/getINDI $RPM_BUILD_ROOT%{_bindir}
-install GUI/xephem/tools/indi/indiserver $RPM_BUILD_ROOT%{_bindir}
-install GUI/xephem/tools/indi/setINDI $RPM_BUILD_ROOT%{_bindir}
-install GUI/xephem/tools/lx200xed/lx200xed $RPM_BUILD_ROOT%{_bindir}
-install GUI/xephem/tools/xedb/xedb $RPM_BUILD_ROOT%{_bindir}
-install GUI/xephem/tools/xephemdbd/xephemdbd $RPM_BUILD_ROOT%{_bindir}
+cp -p GUI/xephem/tools/simpleINDI/simpleINDI $RPM_BUILD_ROOT%{_bindir}
+cp -p GUI/xephem/tools/lx200xed/lx200xed $RPM_BUILD_ROOT%{_bindir}
+cp -p GUI/xephem/tools/xedb/xedb $RPM_BUILD_ROOT%{_bindir}
+cp -p GUI/xephem/tools/xephemdbd/xephemdbd $RPM_BUILD_ROOT%{_bindir}
 # xephemdbd.html and xephemdbd.pl are used for WWW interface to xephemdbd
 # one can make http server subpackage
-install GUI/xephem/tools/xephemdbd/start-xephemdbd.pl $RPM_BUILD_ROOT%{_bindir}
-install GUI/xephem/auxil/*.pl $RPM_BUILD_ROOT%{_bindir}
-
-install GUI/xephem/tools/indi/evalINDI.man $RPM_BUILD_ROOT%{_mandir}/man1/evalINDI.1
-install GUI/xephem/tools/indi/getINDI.man $RPM_BUILD_ROOT%{_mandir}/man1/getINDI.1
-install GUI/xephem/tools/indi/indidevapi.man $RPM_BUILD_ROOT%{_mandir}/man1/indidevapi.1
-install GUI/xephem/tools/indi/indiserver.man $RPM_BUILD_ROOT%{_mandir}/man1/indiserver.1
-install GUI/xephem/tools/indi/setINDI.man $RPM_BUILD_ROOT%{_mandir}/man1/setINDI.1
-
-install GUI/xephem/tools/indi/*.fts $RPM_BUILD_ROOT%{_datadir}/%{name}/fits
+cp -p GUI/xephem/tools/xephemdbd/start-xephemdbd.pl $RPM_BUILD_ROOT%{_bindir}
+cp -p GUI/xephem/auxil/*.pl $RPM_BUILD_ROOT%{_bindir}
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -185,7 +171,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %files tools
 %defattr(644,root,root,755)
-%doc GUI/xephem/tools/indi/README-indi GUI/xephem/tools/lx200xed/README-lx200xed
+%doc GUI/xephem/tools/lx200xed/README-lx200xed
 %doc GUI/xephem/tools/xedb/README-xedb GUI/xephem/tools/xephemdbd/README-xephemdbd
 
 %attr(755,root,root) %{_bindir}/*
This page took 0.138536 seconds and 4 git commands to generate.