]> git.pld-linux.org Git - packages/suck.git/commitdiff
- new URLs, updated to 4.3.4 auto/th/suck-4.3.4-1
authorJakub Bogusz <qboosh@pld-linux.org>
Sun, 29 Sep 2019 18:03:04 +0000 (20:03 +0200)
committerJakub Bogusz <qboosh@pld-linux.org>
Sun, 29 Sep 2019 18:03:17 +0000 (20:03 +0200)
- updated PLD,perl-5.6 patches
- gets patch obsolete except for omitted update wrt. newline left by fgets()
- IPv6 support now present upstream, updated ipv6 patch to just add some features previously
  found in our patch (numeric IPv6 hosts support, -4 option)
- removed obsolete DESTDIR patch

suck-DESTDIR.patch [deleted file]
suck-PLD.patch
suck-gets.patch
suck-ipv6.patch
suck-perl-5.6.patch
suck.spec

diff --git a/suck-DESTDIR.patch b/suck-DESTDIR.patch
deleted file mode 100644 (file)
index 9532e2a..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
---- suck-4.2.2/Makefile.in~    Tue Nov 16 21:34:46 1999
-+++ suck-4.2.2/Makefile.in     Tue Nov 16 21:38:03 1999
-@@ -171,28 +171,26 @@
- #install_Spanish: install_bin install_sman
- install_bin: suck rpost testhost lmove
--      - mkdir -p $(bindir)
--      - strip -s suck rpost testhost lmove
--      $(INSTALL_PROGRAM) suck $(bindir)/suck
--      $(INSTALL_PROGRAM) rpost $(bindir)/rpost
--      $(INSTALL_PROGRAM) testhost $(bindir)/testhost
--      $(INSTALL_PROGRAM) lmove $(bindir)/lmove
-+      - mkdir -p $(DESTDIR)$(bindir)
-+      $(INSTALL_PROGRAM) suck $(DESTDIR)$(bindir)/suck
-+      $(INSTALL_PROGRAM) rpost $(DESTDIR)$(bindir)/rpost
-+      $(INSTALL_PROGRAM) testhost $(DESTDIR)$(bindir)/testhost
-+      $(INSTALL_PROGRAM) lmove $(DESTDIR)$(bindir)/lmove
- install_man: $(MAN)/suck.1 $(MAN)/rpost.1 $(MAN)/testhost.1 $(MAN)/lmove.1
--      - mkdir -p $(mandir)
--      - rm -f $(mandir)/lpost.$(manext)
--      $(INSTALL_DATA) $(MAN)/suck.1 $(mandir)/suck.$(manext)
--      $(INSTALL_DATA) $(MAN)/rpost.1 $(mandir)/rpost.$(manext)
--      $(INSTALL_DATA) $(MAN)/testhost.1 $(mandir)/testhost.$(manext)
--      $(INSTALL_DATA) $(MAN)/lmove.1 $(mandir)/lmove.$(manext)
-+      - mkdir -p $(DESTDIR)$(mandir)
-+      - rm -f $(DESTDIR)$(mandir)/lpost.$(manext)
-+      $(INSTALL_DATA) $(MAN)/suck.1 $(DESTDIR)$(mandir)/suck.$(manext)
-+      $(INSTALL_DATA) $(MAN)/rpost.1 $(DESTDIR)$(mandir)/rpost.$(manext)
-+      $(INSTALL_DATA) $(MAN)/testhost.1 $(DESTDIR)$(mandir)/testhost.$(manext)
-+      $(INSTALL_DATA) $(MAN)/lmove.1 $(DESTDIR)$(mandir)/lmove.$(manext)
- #install_sman: $(SMAN)/suck.1 $(SMAN)/rpost.1 $(SMAN)/testhost.1 $(SMAN)/lpost.1
- #     $(MAKE) -C $(SMAN)
- install_lpost: lpost $(MAN)/lpost.1
--      - strip -s lpost
--      $(INSTALL_PROGRAM) lpost $(bindir)/lpost
--      $(INSTALL_DATA) $(MAN)/lpost.1 $(mandir)/lpost.$(manext)
-+      $(INSTALL_PROGRAM) lpost $(DESTDIR)$(bindir)/lpost
-+      $(INSTALL_DATA) $(MAN)/lpost.1 $(DESTDIR)$(mandir)/lpost.$(manext)
- installall: install install_lpost
index ef26245f78b760bb0bbad5203377a3639330f179..f319d280a9b3fb2c4489f1034b9c0f8e0d9840a8 100644 (file)
@@ -1,4 +1,3 @@
-diff -Nur suck-4.3.2.orig/README.FIRST suck-4.3.2/README.FIRST
 --- suck-4.3.2.orig/README.FIRST       Thu Jan  1 01:00:00 1970
 +++ suck-4.3.2/README.FIRST    Mon Mar 31 22:30:30 2003
 @@ -0,0 +1,24 @@
@@ -26,9 +25,8 @@ diff -Nur suck-4.3.2.orig/README.FIRST suck-4.3.2/README.FIRST
 +
 +Bye,
 +    Karsten Weiss <karsten@addx.au.s.shuttle.de>
-diff -Nur suck-4.3.2.orig/configure.in suck-4.3.2/configure.in
---- suck-4.3.2.orig/configure.in       Sun Mar 23 19:11:07 2003
-+++ suck-4.3.2/configure.in    Mon Mar 31 22:34:56 2003
+--- suck-4.3.4.orig/configure.ac       Sun Mar 23 19:11:07 2003
++++ suck-4.3.4/configure.ac    Mon Mar 31 22:34:56 2003
 @@ -18,11 +18,11 @@
  AC_SUBST(GCC)
  
@@ -424,9 +422,8 @@ diff -Nur suck-4.3.2.orig/sample/get.news.inn suck-4.3.2/sample/get.news.inn
        echo "You can hang up the modem now"
  
  fi
-diff -Nur suck-4.3.2.orig/sample/put.news suck-4.3.2/sample/put.news
---- suck-4.3.2.orig/sample/put.news    Sun Oct  4 21:32:26 1998
-+++ suck-4.3.2/sample/put.news Mon Mar 31 22:30:30 2003
+--- suck-4.3.4.orig/sample/put.news    Sun Oct  4 21:32:26 1998
++++ suck-4.3.4/sample/put.news Mon Mar 31 22:30:30 2003
 @@ -1,34 +1,10 @@
  #!/bin/sh
  
@@ -441,7 +438,7 @@ diff -Nur suck-4.3.2.orig/sample/put.news suck-4.3.2/sample/put.news
 -      echo
 -      echo "Usage `basename $0` infile outfile <RETURN>"
 -      echo
--      exit -1
+-      exit 1
 -fi
 -
 -SEDCMD="/^NNTP-Posting-Host/d"
@@ -455,12 +452,12 @@ diff -Nur suck-4.3.2.orig/sample/put.news suck-4.3.2/sample/put.news
 -              
 -      if [ $? -ne 0 ]; then
 -              echo "Error"
--              exit -1
+-              exit 1
 -      fi
 -
 -else
 -      echo "$1 does not exist"
--      exit -1
+-      exit 1
 -fi
 +# this is just a simple script to use awk to strip off the
 +# NNTP-Posting-Host and Xref headers that my ISP's newsfeed
@@ -470,9 +467,8 @@ diff -Nur suck-4.3.2.orig/sample/put.news suck-4.3.2/sample/put.news
 +      /^$/ {body = 1}
 +      body || !/^(NNTP-Posting-Host|NNTP-Posting-Date|X-Trace|X-Complaints-To|Xref|Path):/
 +' $1 >$2
-diff -Nur suck-4.3.2.orig/sample/put.news.sm suck-4.3.2/sample/put.news.sm
---- suck-4.3.2.orig/sample/put.news.sm Tue Jun  4 15:20:16 2002
-+++ suck-4.3.2/sample/put.news.sm      Mon Mar 31 22:30:30 2003
+--- suck-4.3.4.orig/sample/put.news.sm Tue Jun  4 15:20:16 2002
++++ suck-4.3.4/sample/put.news.sm      Mon Mar 31 22:30:30 2003
 @@ -1,29 +1,12 @@
  #!/bin/sh
  
@@ -499,7 +495,7 @@ diff -Nur suck-4.3.2.orig/sample/put.news.sm suck-4.3.2/sample/put.news.sm
 -              
 -      if [ $? -ne 0 ]; then
 -              echo "Error"
--              exit -1
+-              exit 1
 -      fi
 -
 -      rm ${TMPFILE}
@@ -508,9 +504,8 @@ diff -Nur suck-4.3.2.orig/sample/put.news.sm suck-4.3.2/sample/put.news.sm
 +    /^$/ {body = 1}
 +    body || !/^(NNTP-Posting-Host|NNTP-Posting-Date|X-Trace|X-Complaints-To|Xref|Path):/
 +    ' > $2
-diff -Nur suck-4.3.2.orig/suck_config.h suck-4.3.2/suck_config.h
---- suck-4.3.2.orig/suck_config.h      Sun Mar 23 16:35:53 2003
-+++ suck-4.3.2/suck_config.h   Mon Mar 31 22:30:30 2003
+--- suck-4.3.4/suck_config.h.orig      2018-08-01 15:54:24.000000000 +0200
++++ suck-4.3.4/suck_config.h   2019-09-29 08:53:24.781990082 +0200
 @@ -69,7 +69,7 @@
  
  /* FULL PATH of error log used if -e option specifed to any of the programs */
@@ -520,32 +515,23 @@ diff -Nur suck-4.3.2.orig/suck_config.h suck-4.3.2/suck_config.h
  
  /* FULL PATH of status messages log if -s option specified to any of the programs */
  /* can be overridden at the command line with -S option */
-@@ -95,8 +95,8 @@
+@@ -95,7 +95,7 @@
  #define N_LMOVE_CONFIG  "lmove-config"          /* config file for lmove */
  #define N_XOVER         "suckxover"             /* parameter file for which articles NOT to download via xover */
  #define N_NODOWNLOAD    "sucknodownload"        /* file name for message-ids that I never download */
--#define N_PHRASES "/usr/local/lib/suck.phrases"       /* default location for phrase file */
--#define HISTORY_FILE "/usr/news/db/history"     /* default location for history file */
-+#define N_PHRASES "/usr/lib/suck.phrases"     /* default location for phrase file */
-+#define HISTORY_FILE "/var/lib/news/history"  /* default location for history file */
+-#define N_PHRASES "/etc/suck/phrases"            /* default location for phrase file */
++#define N_PHRASES "/etc/news/suck/phrases"            /* default location for phrase file */
+ #define HISTORY_FILE "/var/lib/news/history"     /* default location for history file */
  
  /* TEMP FILES created */
- #define N_NEWRC "suck.newrc"
-@@ -111,7 +111,7 @@
+@@ -111,8 +111,8 @@
  #define N_OLD_OLDRC    "sucknewsrc.old"
  
  /* Various DIRECTORY PATHS, these can be overriden from command line */
 -#define N_TMPDIR "."          /* location of Temp Files */
+-#define N_DATADIR "/etc/suck"         /* location of Data Files */
 +#define N_TMPDIR "/tmp"               /* location of Temp Files */
- #define N_DATADIR "."         /* location of Data Files */
++#define N_DATADIR "/etc/news/suck"            /* location of Data Files */
  #define N_MSGDIR "./Msgs"     /*location of articles produced by suck, if multifile option selected */
  
-@@ -128,7 +128,7 @@
- #define RPOST_FAIL_EXT ".fail"
- /* RNEWS program called by lpost */
--#define RNEWS "/usr/lib/news/rnews"
-+#define RNEWS "/usr/bin/rnews"
- /* character used as a comment in sucknewsrc */
- #define SUCKNEWSRC_COMMENT_CHAR '#'
+ /* Argument substition strings for rpost */
index ca28622963fb7d85163d997eee0b45a0ec707764..080828f51b0c855846c8afdb89b3ea1c8b7a4dc9 100644 (file)
@@ -1,14 +1,5 @@
 --- suck-4.3.1/lpost.c.orig    Sat Jul 25 02:07:44 1998
 +++ suck-4.3.1/lpost.c Sun Jan  5 13:34:16 2003
-@@ -17,7 +17,7 @@
-               verbose=1;
-       }
--      while(gets(line) != NULL && retval == 0) {
-+      while(fgets(line,1024,stdin) != NULL && retval == 0) {
-               len=strlen(line);
-               if (pfp == NULL) {
-                       if (verbose != 0) {
 @@ -29,7 +29,7 @@
                        perror("Error: cannot open rnews: ");
                        retval = -1;
@@ -18,11 +9,3 @@
                        /* end of article */
                        if (verbose != 0) {
                                printf("end of article %d\n",count);
-@@ -41,7 +41,6 @@
-               }
-               else {
-                       (void) fputs(line, pfp);
--                      (void) putc('\n', pfp);
-               }
-       } /* end while */
-       exit(retval);
index 7a7a8901bf39868d74db042c16e778691a982a10..3d7c1cf02695d1020120da0ac686d1d21b661c51 100644 (file)
-diff -ur suck-4.3.2-orig/active.c suck-4.3.2/active.c
---- suck-4.3.2-orig/active.c   2001-09-15 00:06:40.000000000 +0200
-+++ suck-4.3.2/active.c        2007-03-22 18:56:20.000000000 +0100
-@@ -181,7 +181,6 @@
-       
-       /* connect to localhost NNTP server */
-       int fd;
--      struct hostent *hi;
-       char *inbuf;
-       unsigned int port;
-@@ -190,7 +189,7 @@
+--- suck-4.3.4/active.c.orig   2018-08-01 15:54:24.000000000 +0200
++++ suck-4.3.4/active.c        2019-09-29 19:31:54.637781124 +0200
+@@ -189,7 +189,7 @@ int connect_local(PMaster master) {
                do_debug("Connecting to %s on port %d\n", master->localhost, port);
        }
-       
--      if((fd = connect_to_nntphost(master->localhost, &hi, NULL, port, master->local_ssl, &master->local_ssl_struct)) >= 0) {
-+      if((fd = connect_to_nntphost(master->v4only, master->localhost, NULL, port, master->local_ssl, &master->local_ssl_struct)) >= 0) {
+-      if((fd = connect_to_nntphost(master->localhost, NULL, 0, NULL, port, master->local_ssl, &master->local_ssl_struct)) >= 0) {
++      if((fd = connect_to_nntphost(master->localhost, NULL, 0, NULL, port, master->local_ssl, &master->local_ssl_struct, master->ai_family)) >= 0) {
                /* get the announcement line */
                if(sgetline(fd, &inbuf, master->local_ssl, master->local_ssl_struct) < 0) {
                        close(fd);
-diff -ur suck-4.3.2-orig/both.c suck-4.3.2/both.c
---- suck-4.3.2-orig/both.c     2003-03-25 23:38:45.000000000 +0100
-+++ suck-4.3.2/both.c  2007-03-22 18:57:27.000000000 +0100
-@@ -137,36 +137,51 @@
-       }
-       return retval;
+--- suck-4.3.4/both.c.orig     2018-08-01 15:54:24.000000000 +0200
++++ suck-4.3.4/both.c  2019-09-29 19:38:49.382200927 +0200
+@@ -139,10 +139,17 @@ char *get_long(char *sp, long *intPtr) {
  }
--
  /*---------------------------------------------*/
--struct hostent *get_hostent(const char *host) {
--      struct in_addr saddr;
--      int c;
--      struct hostent *hi = NULL;
-+struct addrinfo *get_addrinfo(int family, const char *host, const char *port) {
-+      struct addrinfo *hi = NULL;
+-struct addrinfo *get_addrinfo(const char *host, const char *sport) {
+-      struct addrinfo hints = { .ai_socktype=SOCK_STREAM, .ai_flags = AI_CANONNAME };
++struct addrinfo *get_addrinfo(const char *host, const char *sport, int family) {
++      struct addrinfo hints = { .ai_socktype=SOCK_STREAM, .ai_flags = AI_CANONNAME, .ai_family = family };
+       struct addrinfo * res = NULL;
  
--      if(host==NULL) { 
-+      if (host==NULL)
-+      {
-               error_log(ERRLOG_REPORT,both_phrases[0], NULL); 
-       }
--      else {
--              c=*host;
--              if(isdigit(c)) {
--                      saddr.s_addr = inet_addr(host); 
--                      hi = gethostbyaddr((char *)&saddr,sizeof(struct in_addr),AF_INET);
--              }
--              else {
--                      hi = gethostbyname(host);
--              }
-+      else
-+      {
-+              struct addrinfo hints;
-+              
-+              memset(&hints, 0, sizeof(hints));
-+              
-+              hints.ai_family = family;
-+              hints.ai_socktype = SOCK_STREAM;
-+              hints.ai_flags = AI_CANONNAME;
-+              
 +#ifdef AI_ADDRCONFIG
-+              hints.ai_flags |= AI_ADDRCONFIG;
++      hints.ai_flags |= AI_ADDRCONFIG;
 +#endif
-+              
 +#ifdef AI_NUMERICSERV
-+              hints.ai_flags |= AI_NUMERICSERV;
++      hints.ai_flags |= AI_NUMERICSERV;
 +#endif
-+              
-+              if (getaddrinfo(host, port, &hints, &hi))
-+                      hi = NULL;
++
+       if(host==NULL) {
+               error_log(ERRLOG_REPORT,both_phrases[0], NULL);
        }
-       return hi;
+@@ -155,7 +162,7 @@ struct addrinfo *get_addrinfo(const char
+       return res;
  }
  /*--------------------------------------------*/
--int connect_to_nntphost(const char *host, struct hostent **hi, FILE *msgs, unsigned short int portnr, int do_ssl, void **ssl) {
-+void free_addrinfo(struct addrinfo *hi)
-+{
-+      if (hi) freeaddrinfo(hi);
-+}
-+/*--------------------------------------------*/
-+int connect_to_nntphost(int v4only, const char *host, FILE *msgs, unsigned short int portnr, int do_ssl, void **ssl) {
-       char *ptr, *realhost;
--      struct in_addr *aptr;
--      struct in_addr saddr;
--      struct sockaddr_in address;
-+      char *bufhost;
-+      char *ptr_last_colon;
-+      struct addrinfo *hi;
+-int connect_to_nntphost(const char *host, char * name, size_t namelen, FILE *msgs, unsigned short int portnr, int do_ssl, void **ssl) {
++int connect_to_nntphost(const char *host, char * name, size_t namelen, FILE *msgs, unsigned short int portnr, int do_ssl, void **ssl, int family) {
+       char *realhost;
        char sport[10];
        int sockfd = -1;
-+      int colons;
-       
- #ifdef HAVE_LIBSSL
-       SSL *ssl_struct = NULL;
-@@ -184,65 +199,181 @@
-       }
- #endif
-       /* handle host:port type syntax */
--      realhost = strdup(host);
--      if(realhost == NULL) {
-+      bufhost = strdup(host);
-+      if(bufhost == NULL) {
+@@ -191,7 +198,13 @@ int connect_to_nntphost(const char *host
                MyPerror("out of memory copying host name");
                return sockfd;
        }
--      ptr = strchr(realhost, ':');
--      if(ptr != NULL) {
-+      
-+      realhost = bufhost;
-+      
-+      // first count colons
-+      colons = 0;
-+      ptr = realhost;
-+      ptr_last_colon = NULL;
-+      
-+      while (*ptr)
-+      {
-+              if (*ptr == ':')
-+              {
-+                      colons++;
-+                      ptr_last_colon = ptr;
-+              }
-+              ptr++;
-+      }
-+      
-+      if (colons > 1)
-+      {
-+              // this may be numeric IPv6 addr
-+              // check for [addr]:port syntax
-+              
-+              if (*realhost != '[')
-+              {
-+                      // no such syntax -- don't interpret last colon as a port separator
-+                      ptr_last_colon = NULL;
-+              }
-+              else
-+              {
-+                      // skip leading '['
-+                      realhost++;     
-+                      
-+                      // find trailing ']'
-+                      ptr = strchr(realhost, ']');
-+                      if (ptr == NULL)
-+                      {
-+                              // no ']' ??
-+                              // try to recover -- just forget about last colon (if any)
-+                              ptr_last_colon = NULL;
-+                      }
-+                      else
-+                      {
-+                              // null terminate hostname
-+                              *ptr = '\0';
-+                              
-+                              if (ptr_last_colon)
-+                              {
-+                                      // check if last colon is right after ']'
-+                                      if (++ptr != ptr_last_colon)
-+                                      {
-+                                              // well this is not the case..
-+                                              // try to recover again
-+                                              ptr_last_colon = NULL;
-+                                      }
-+                              }
-+                      }
-+              }
+-      char * ptr = strchr(realhost, ':');
++      char * colonsearchstart = realhost;
++      if(realhost[0] == '[') { /* numeric IPv6 host contains colons, skip this part */
++              char *v6end = strchr(realhost, ']');
++              if (v6end != NULL)
++                      colonsearchstart = v6end + 1;
 +      }
-+      
-+      ptr = ptr_last_colon;
-+      if (ptr != NULL)
-+      {
++      char * ptr = strchr(colonsearchstart, ':');
+       if(ptr != NULL) {
                *ptr = '\0';  /* null terminate host name */
                portnr = atoi(++ptr); /* get port number */
-       }
-       
--      
--      
-       sprintf(sport, "%hu", portnr);  /* cause print_phrases wants all strings */
+@@ -203,7 +216,7 @@ int connect_to_nntphost(const char *host
        print_phrases(msgs, both_phrases[1], sport, NULL);
  
-       /* Find the internet address of the NNTP server */
--      *hi = get_hostent(realhost);
--      if(*hi == NULL) {
-+      hi = get_addrinfo(v4only ? PF_INET : PF_UNSPEC, realhost, sport);
-+      if (hi == NULL)
-+      {
-               error_log(ERRLOG_REPORT,"%v1%: ",realhost, NULL);
-               MyPerror(both_phrases[2]);
--              free(realhost);
-+              free(bufhost);
-       }
--      else {
--              free(realhost);
--              print_phrases(msgs, both_phrases[3], (*hi)->h_name, NULL);
--              while((ptr = *((*hi)->h_aliases)) != NULL) {
--                      print_phrases(msgs, both_phrases[4], ptr, NULL );
--                      (*hi)->h_aliases++;
--              }
--              if((*hi)->h_addrtype != AF_INET) {
--                      error_log(ERRLOG_REPORT, both_phrases[5], NULL);
-+      else
-+      {
-+              int supported_pf = 0;
-+              char *canonname = hi->ai_canonname ? hi->ai_canonname : realhost;
-+              
-+              struct addrinfo *hi_ptr = hi;
-+              
-+              char *vhost = NULL;
-+              struct addrinfo *hi_vhost = NULL;
-+              
-+              print_phrases(msgs, both_phrases[3], canonname, NULL);
-+              
-+              if (!v4only)
-+              {
-+                      // init IPv6 virtual host functionality.
-+                      
-+                      // if the VHOST environment variable is set, try to use its value
-+                      // as the local address for the outgoing connection.
-+                      
-+                      vhost = getenv("VHOST");
-+                      
-+                      if (vhost)
-+                      {
-+                              hi_vhost = get_addrinfo(PF_INET6, vhost, NULL);
-+                              
-+                              if (!hi_vhost)
-+                              {
-+                                      print_phrases(msgs, "Invalid VHOST: %v1%\n", vhost, NULL);
-+                              }
-+                      }
-               }
--              else {
--                      while((aptr = (struct in_addr *)*((*hi)->h_addr_list)++) != NULL) {
--                              saddr = *aptr;
--                              print_phrases(msgs, both_phrases[17], inet_ntoa(*aptr), NULL);
--                      }
--
--                      /* Create a socket */
--                      if((sockfd = socket( AF_INET, SOCK_STREAM, SOCKET_PROTOCOL)) == -1) {
--                              MyPerror(both_phrases[6]);
--                      }
--                      else { 
--                              address.sin_family = AF_INET;
--                              address.sin_port = htons(portnr);  /* NNTP port */
--                              address.sin_addr= saddr;
--
--                              /* Establish a connection */
--                              if(connect(sockfd, (struct sockaddr *)&address, sizeof address ) == -1) {
--                                      MyPerror(both_phrases[7]);
--                                      close(sockfd);
--                                      sockfd = -1;
-+              
-+              while (hi_ptr)
-+              {
-+                      if ((hi_ptr->ai_family == PF_INET) || (hi_ptr->ai_family == PF_INET6))
-+                      {
-+                              char num_host[NI_MAXHOST];
-+                              
-+                              supported_pf++;
-+                              
-+                              if (!getnameinfo(hi_ptr->ai_addr, hi_ptr->ai_addrlen, num_host, sizeof(num_host), NULL, 0, NI_NUMERICHOST))
-+                                      print_phrases(msgs, both_phrases[17], num_host, NULL);
-+                              
-+                              /* Create a socket */
-+                              if ((sockfd = socket(hi_ptr->ai_family, SOCK_STREAM, SOCKET_PROTOCOL)) < 0)
-+                              {
-+                                      MyPerror(both_phrases[6]);
-                               }
--                              else {
--                                      print_phrases(msgs,both_phrases[8], (*hi)->h_name, NULL);
-+                              else
-+                              {
-+                                      if ((hi_ptr->ai_family == PF_INET6) && (hi_vhost))
-+                                      {
-+                                              // IPv6 virtual host in action:
-+                                              // explicitly bind() the socket to the specified local address
-+                                              
-+                                              if (bind(sockfd, hi_vhost->ai_addr, hi_vhost->ai_addrlen) < 0)
-+                                              {
-+                                                      print_phrases(msgs, "Invalid VHOST: %v1%\n", vhost, NULL);
-+                                              }
-+                                              else
-+                                              {
-+                                                      print_phrases(msgs, "VHOST: %v1%\n", vhost, NULL);
-+                                              }
-+                                      }
-+                                      
-+                                      /* Establish a connection */
-+                                      if (connect(sockfd, hi_ptr->ai_addr, hi_ptr->ai_addrlen) < 0)
-+                                      {
-+                                              MyPerror(both_phrases[7]);
-+                                              close(sockfd);
-+                                              sockfd = -1;
-+                                      }
-+                                      else
-+                                      {
-+                                              print_phrases(msgs, both_phrases[8], canonname, NULL);
-+                                              break;
-+                                      }
-                               }
--                      }
-+                      }
-+                      
-+                      hi_ptr = hi_ptr->ai_next;
-+              }
-+              
-+              if (!supported_pf)
-+              {
-+                      error_log(ERRLOG_REPORT, both_phrases[5], NULL);
-               }
-+              
-+              free(bufhost);
-+              free_addrinfo(hi);
-+              free_addrinfo(hi_vhost);
-+              
- #ifdef HAVE_LIBSSL
-               if(sockfd > -1 && do_ssl == TRUE) {
-                       if((ssl_struct = SSL_new(test1)) == NULL) {
-diff -ur suck-4.3.2-orig/both.h suck-4.3.2/both.h
---- suck-4.3.2-orig/both.h     2002-08-28 00:54:34.000000000 +0200
-+++ suck-4.3.2/both.h  2007-03-22 18:56:20.000000000 +0100
-@@ -9,11 +9,12 @@
+       /* Find the internet addresses of the NNTP server */
+-      ai = get_addrinfo(realhost, sport);
++      ai = get_addrinfo(realhost, sport, family);
+       if(ai == NULL) {
+               free(realhost);
+       }
+--- suck-4.3.4/both.h.orig     2018-08-01 15:54:24.000000000 +0200
++++ suck-4.3.4/both.h  2019-09-29 19:23:51.547064917 +0200
+@@ -9,11 +9,10 @@
  /* declarations */
  int sgetline(int fd, char **sbuf, int, void *);
  int sputline(int fd, const char *outbuf, int, void *);
--int connect_to_nntphost(const char *host, struct hostent **, FILE *, unsigned short int, int, void **);
-+int connect_to_nntphost(int v4only, const char *host, FILE *, unsigned short int, int, void **);
+-int connect_to_nntphost(const char *host, char *, size_t, FILE *, unsigned short int, int, void **);
++int connect_to_nntphost(const char *host, char *, size_t, FILE *, unsigned short int, int, void **, int family);
  void disconnect_from_nntphost(int, int, void **);
  char *number(char *sp, int *intPtr);
  char *get_long(char *, long *);
 -struct hostent *get_hostent(const char *host);
-+struct addrinfo *get_addrinfo(int family, const char *host, const char *port);
-+void free_addrinfo(struct addrinfo *hi);
  void signal_block(int);
  void error_log(int mode, const char *fmt, ...);
  void MyPerror(const char *);
-diff -ur suck-4.3.2-orig/rpost.c suck-4.3.2/rpost.c
---- suck-4.3.2-orig/rpost.c    2003-03-25 23:50:00.000000000 +0100
-+++ suck-4.3.2/rpost.c 2007-03-22 18:56:20.000000000 +0100
-@@ -78,6 +78,7 @@
+--- suck-4.3.4/rpost.c.orig    2019-09-29 12:37:57.232336891 +0200
++++ suck-4.3.4/rpost.c 2019-09-29 19:41:21.641376068 +0200
+@@ -79,6 +79,7 @@ typedef struct {
  #ifdef PERL_EMBED
        PerlInterpreter *perl_int;
  #endif
-+      int v4only;
++        int ai_family;
  } Args, *Pargs;
  
  /* function declarations */
-@@ -114,7 +115,6 @@
- int main(int argc, char *argv[], char *env[]) {
-       char *inbuf;
-       int response, retval, loop, fargc, i;
--      struct hostent *hi;
-       struct stat sbuf;
-       char **args, **fargs;
-       Args myargs;
-@@ -149,6 +149,7 @@
+@@ -149,6 +150,7 @@ int main(int argc, char *argv[], char *e
  #ifdef PERL_EMBED
        myargs.perl_int = NULL;
  #endif
-+      myargs.v4only = FALSE;
++      myargs.ai_family = PF_UNSPEC;
  
        /* have to do this next so if set on cmd line, overrides this */
  #ifdef N_PHRASES              /* in case someone nukes def */
-@@ -230,6 +231,7 @@
- #ifdef TIMEOUT
-                       do_debug("TimeOut = %d\n", TimeOut);
- #endif
-+                      do_debug("myargs.v4 = %d\n", myargs.v4only);
-                       do_debug("myargs.debug = TRUE\n");
-               }
-@@ -241,7 +243,7 @@
+@@ -241,7 +243,7 @@ int main(int argc, char *argv[], char *e
                        retval = RETVAL_ERROR;
                }
                else {
--                      myargs.sockfd = connect_to_nntphost( myargs.host, &hi, myargs.status_fptr, myargs.portnr, myargs.do_ssl, &myargs.ssl_struct);
-+                      myargs.sockfd = connect_to_nntphost(myargs.v4only, myargs.host, myargs.status_fptr, myargs.portnr, myargs.do_ssl, &myargs.ssl_struct);
+-                      myargs.sockfd = connect_to_nntphost( myargs.host, hostname, sizeof hostname, myargs.status_fptr, myargs.portnr, myargs.do_ssl, &myargs.ssl_struct);
++                      myargs.sockfd = connect_to_nntphost( myargs.host, hostname, sizeof hostname, myargs.status_fptr, myargs.portnr, myargs.do_ssl, &myargs.ssl_struct, myargs.ai_family);
                        if(myargs.sockfd < 0) {
                                retval = RETVAL_ERROR;
                        }
-@@ -296,7 +298,7 @@
-                               retval = do_article(&myargs, stdin);
-                       }
-       
--                      print_phrases(myargs.status_fptr, rpost_phrases[4], hi->h_name, NULL);
-+                      print_phrases(myargs.status_fptr, rpost_phrases[4], myargs.host, NULL);
-                       if(myargs.debug == TRUE) {
-                               do_debug("Sending quit");
-                       }
-@@ -738,6 +740,9 @@
+@@ -738,6 +740,9 @@ int scan_args(Pargs myargs, int argc, ch
                                myargs->portnr = DEFAULT_SSL_PORT;
                                break;
  #endif
-+                      case '4':
-+                              myargs->v4only = TRUE;
++                      case '4': /* IPv4 only */
++                              myargs->ai_family = PF_INET;
 +                              break;
                          default:
                                error_log(ERRLOG_REPORT, rpost_phrases[30], argv[loop],NULL);
                                break;
-diff -ur suck-4.3.2-orig/suck.c suck-4.3.2/suck.c
---- suck-4.3.2-orig/suck.c     2003-03-28 20:24:54.000000000 +0100
-+++ suck-4.3.2/suck.c  2007-03-22 18:56:20.000000000 +0100
-@@ -118,6 +118,7 @@
+--- suck-4.3.4/suck.c.orig     2018-08-01 15:54:24.000000000 +0200
++++ suck-4.3.4/suck.c  2019-09-29 19:43:03.297492016 +0200
+@@ -118,6 +118,7 @@ enum {
        ARG_HIST_FILE, ARG_HEADER_ONLY, ARG_ACTIVE_LASTREAD, ARG_USEXOVER, ARG_RESETCOUNTER, \
        ARG_LOW_READ, ARG_SHOW_GROUP, ARG_USE_SSL, ARG_LOCAL_SSL, ARG_BATCH_POST_NR, \
        ARG_PASSWD_ENV,
-+      ARG_V4_ONLY,
- }; 
++      ARG_IPV4_ONLY,
+ };
  
  typedef struct Arglist{
-@@ -198,6 +199,7 @@
+@@ -198,6 +199,7 @@ const Args arglist[] = {
        {"W",  "wait", 2, ARG_WAIT, 46},
        {"X",  "no_xover", 0, ARG_XOVER, -1},
        {"Z",  "use_xover", 0, ARG_USEXOVER, -1},
-+      {"4",  "v4", 0, ARG_V4_ONLY, -1},
-       
++      {"4",  "v4", 0, ARG_IPV4_ONLY, -1},
  };
  
-@@ -290,6 +292,7 @@
+@@ -290,6 +292,7 @@ int main(int argc, char *argv[]) {
        master.local_ssl_struct = NULL;
        master.batch_post_nr = 0;
        master.passwd_env = FALSE;
-+      master.v4only = FALSE;
-       
-       /* have to do this next so if set on cmd line, overrides this */
++      master.ai_family = PF_UNSPEC;
  
-@@ -392,6 +395,7 @@
-               do_debug("master.local_ssl = %s\n", true_str(master.local_ssl));
-               do_debug("master.batch_post_nr =  %d\n",master.batch_post_nr);
-               do_debug("master.passwd_env = %s\n", true_str(master.passwd_env));
-+              do_debug("master.v4 = %d\n", master.v4only);
- #ifdef TIMEOUT
-               do_debug("TimeOut = %d\n", TimeOut);
- #endif
-@@ -665,7 +669,6 @@
+       /* have to do this next so if set on cmd line, overrides this */
  
-       char *inbuf;
-       int nr, resp, retval = RETVAL_OK;
--      struct hostent *hi;
-       FILE *fp;
-       
-       
-@@ -696,7 +699,7 @@
+@@ -695,7 +698,7 @@ int do_connect(PMaster master, int which
        }
        fp = (which_time == CONNECT_FIRST) ? master->msgs : NULL;
  
--      master->sockfd = connect_to_nntphost( master->host, &hi, fp, master->portnr, master->do_ssl, &master->ssl_struct);
-+      master->sockfd = connect_to_nntphost(master->v4only, master->host, fp, master->portnr, master->do_ssl, &master->ssl_struct);
-       
+-      master->sockfd = connect_to_nntphost( master->host, NULL, 0, fp, master->portnr, master->do_ssl, &master->ssl_struct);
++      master->sockfd = connect_to_nntphost( master->host, NULL, 0, fp, master->portnr, master->do_ssl, &master->ssl_struct, master->ai_family);
        if(master->sockfd < 0 ) {
                retval = RETVAL_ERROR;
-@@ -2132,6 +2135,9 @@
+@@ -2131,6 +2134,9 @@ int parse_args(PMaster master, int arg,
                master->local_ssl = TRUE;
                break;
  #endif
-+      case ARG_V4_ONLY:
-+              master->v4only = TRUE;
++      case ARG_IPV4_ONLY:
++              master->ai_family = PF_INET;
 +              break;
-                       
        }
-       
-diff -ur suck-4.3.2-orig/suck.h suck-4.3.2/suck.h
---- suck-4.3.2-orig/suck.h     2002-08-28 00:44:09.000000000 +0200
-+++ suck-4.3.2/suck.h  2007-03-22 18:56:20.000000000 +0100
-@@ -103,6 +103,7 @@
+--- suck-4.3.4/suck.h.orig     2018-08-01 15:54:24.000000000 +0200
++++ suck-4.3.4/suck.h  2019-09-29 19:43:18.490743041 +0200
+@@ -103,6 +103,7 @@ typedef struct {
        void *local_ssl_struct;
        int batch_post_nr;
        int passwd_env;
-+      int v4only;
++      int ai_family;
  } Master, *PMaster;
  
  int get_a_chunk(PMaster, FILE *);
-diff -ur suck-4.3.2-orig/testhost.c suck-4.3.2/testhost.c
---- suck-4.3.2-orig/testhost.c 2003-03-23 16:34:46.000000000 +0100
-+++ suck-4.3.2/testhost.c      2007-03-22 18:56:20.000000000 +0100
-@@ -59,7 +59,7 @@
+--- suck-4.3.4/testhost.c.orig 2018-08-01 15:54:24.000000000 +0200
++++ suck-4.3.4/testhost.c      2019-09-29 19:44:56.280213270 +0200
+@@ -59,6 +59,7 @@ void free_phrases(void);
  int main(int argc, char *argv[]) {
  
        int sockfd, response, loop, cmd, quiet, mode_reader, do_ssl, retval = RETVAL_OK;
--      struct hostent *hi;
-+      int v4only = FALSE;
++      int ai_family = PF_UNSPEC;
        struct stat sbuf;
        unsigned short int portnr;
        FILE *fptr = stdout;            /* used to print output to */
-@@ -215,6 +215,9 @@
+@@ -214,6 +215,9 @@ int main(int argc, char *argv[]) {
                                portnr = DEFAULT_SSL_PORT;
                                break;
  #endif
 +                      case '4':
-+                              v4only = TRUE;
++                              ai_family = PF_INET;
 +                              break;
                          default:
                                retval = RETVAL_ERROR;
                                error_log(ERRLOG_REPORT, test_phrases[7], argv[loop], NULL);
-@@ -226,10 +229,16 @@
-               }
-       }
-+      if (!host)
-+      {
-+              error_log(ERRLOG_REPORT, "No host specified\n", NULL);
-+              retval = RETVAL_ERROR;
-+      }
-+
+@@ -228,7 +232,7 @@ int main(int argc, char *argv[]) {
        if(retval == RETVAL_OK) {
                load_phrases(phrases);  /* this is here so everything displays okay */
  
--              sockfd = connect_to_nntphost( host, &hi, (quiet == FALSE)?  fptr : NULL, portnr, do_ssl, &ssl_struct);
-+              sockfd = connect_to_nntphost(v4only, host, (quiet == FALSE)?  fptr : NULL, portnr, do_ssl, &ssl_struct);
+-              sockfd = connect_to_nntphost( host, NULL, 0, (quiet == FALSE)?  fptr : NULL, portnr, do_ssl, &ssl_struct);
++              sockfd = connect_to_nntphost( host, NULL, 0, (quiet == FALSE)?  fptr : NULL, portnr, do_ssl, &ssl_struct, ai_family);
                if(sockfd < 0 ) {
                        retval = RETVAL_ERROR;
                }
index c0fd7a3e510cdc1ae88fe394dd697cecdfb2ac60..75bd08ff9491b2d726e9d672842b5fdb9a91d503 100644 (file)
@@ -1,12 +1,11 @@
-diff -Nur suck-4.2.4.orig/killprg.c suck-4.2.4/killprg.c
---- suck-4.2.4.orig/killprg.c  Sat Jan 27 01:52:45 2001
-+++ suck-4.2.4/killprg.c       Sat Jan 27 01:52:22 2001
+--- suck-4.3.4.orig/killprg.c  Sat Jan 27 01:52:45 2001
++++ suck-4.3.4/killprg.c       Sat Jan 27 01:52:22 2001
 @@ -58,6 +58,7 @@
  #ifdef PERL_EMBED
  #include <EXTERN.h>
  #include <perl.h>
 +#include <XSUB.h>
- #ifdef OLD_PERL  
+ #ifdef OLD_PERL
  #ifndef ERRSV
  # define ERRSV (GvSV(errgv)) /* needed for perl 5.004 and earlier */
 diff -Nur suck-4.2.4.orig/rpost.c suck-4.2.4/rpost.c
index 660cd84d49772145e01413b0c4c4354704e741dc..bfe38ea7b4dc0826246b11619555979573c2db56 100644 (file)
--- a/suck.spec
+++ b/suck.spec
@@ -2,23 +2,23 @@
 Summary:       suck receives/sends news via NNTP
 Summary(pl.UTF-8):     suck odbiera i wysyƂa newsy przez NNTP
 Name:          suck
-Version:       4.3.2
-Release:       6
+Version:       4.3.4
+Release:       1
 License:       Public Domain
 Group:         Networking/News
-Source0:       ftp://sunsite.unc.edu/pub/Linux/system/news/transport/%{name}-%{version}.tar.gz
-# Source0-md5: b4de28e7f256ec3c2c388b2c984f30bf
+#Source0Download: https://github.com/lazarus-pkgs/suck/releases
+Source0:       https://github.com/lazarus-pkgs/suck/archive/%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: b216f248f90bd1d93b61bebfe8b78cb4
 Source1:       %{name}.logrotate
 Source2:       %{name}-get-news.sh
 Source3:       %{name}-get-news-etc-example
 Patch0:                %{name}-PLD.patch
-Patch1:                %{name}-DESTDIR.patch
-Patch2:                %{name}-perl-5.6.patch
-Patch3:                %{name}-gets.patch
-# http://www.bacza.net/files/suck-4.3.2-ipv6.patch
-Patch4:                %{name}-ipv6.patch
-URL:           http://www.sucknews.org/index.html
-BuildRequires: autoconf
+Patch1:                %{name}-perl-5.6.patch
+Patch2:                %{name}-gets.patch
+# additional IPv6 features from older patch: http://www.bacza.net/files/suck-4.3.2-ipv6.patch
+Patch3:                %{name}-ipv6.patch
+URL:           https://github.com/lazarus-pkgs/suck
+BuildRequires: autoconf >= 2.50
 BuildRequires: automake
 BuildRequires: inn-devel >= 2.0
 BuildRequires: openssl-devel >= 0.9.7d
@@ -55,21 +55,15 @@ zainstalowaniu tego pakietu!
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
-%patch4 -p1
 
 %build
 %{__aclocal}
 %{__autoconf}
-CPPFLAGS="-D_GNU_SOURCE"
+%{__autoheader}
+CPPFLAGS="%{rpmcppflags} -D_GNU_SOURCE"
 %configure
 
-# workaround for stupid inn 2.3 headers
-cat >> config.h <<EOF
-#define BOOL int
-#define OFFSET_T off_t
-EOF
-
-%{__make} \
+%{__make} -j1 \
        PERL_LIB="-lperl -lm -lcrypt -lpthread"
 
 %install
@@ -115,22 +109,36 @@ rm -rf $RPM_BUILD_ROOT
 %files
 %defattr(644,root,root,755)
 %doc  CHANGELOG CONTENTS README README.Gui README.Xover perl
-%attr(755,root,root) %{_bindir}/*
+%attr(755,root,root) %{_bindir}/get.news.inn
+%attr(755,root,root) %{_bindir}/lmove
+%attr(755,root,root) %{_bindir}/lpost
+%attr(755,root,root) %{_bindir}/rpost
+%attr(755,root,root) %{_bindir}/suck
+%attr(755,root,root) %{_bindir}/suck-get-news.sh
+%attr(755,root,root) %{_bindir}/testhost
 
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/suck
 %dir %{_localstatedir}
 %attr(750,root,root) %config(noreplace) %{_localstatedir}/get.news.inn
 %attr(750,root,root) %config(noreplace) %{_localstatedir}/get.news.generic
+%attr(750,root,root) %config(noreplace) %{_localstatedir}/perl_kill.pl
+%attr(750,root,root) %config(noreplace) %{_localstatedir}/perl_xover.pl
+%attr(750,root,root) %config(noreplace) %{_localstatedir}/post_filter.pl
 %attr(750,root,root) %config(noreplace) %{_localstatedir}/put.news
+%attr(750,root,root) %config(noreplace) %{_localstatedir}/put.news.pl
 %attr(750,root,root) %config(noreplace) %{_localstatedir}/put.news.sm
-%attr(750,root,root) %config(noreplace) %{_localstatedir}/*.pl
+%attr(750,root,root) %config(noreplace) %{_localstatedir}/put.news.sm.pl
 %attr(640,root,root) %config(noreplace) %{_localstatedir}/sucknewsrc
 %attr(640,root,root) %config(noreplace) %{_localstatedir}/active-ignore
 %dir %{_sysconfdir}/news/suck
-%attr(640,root,root) %config(noreplace) %{_sysconfdir}/news/suck/*
-%{_mandir}/man1/*
-
-%attr(640,root,root) %ghost %{_localstatedir}/suck.killlog*
-%attr(640,root,root) %ghost /var/log/*
+%attr(640,root,root) %config(noreplace) %{_sysconfdir}/news/suck/news.mimuw.edu.pl-example
+%{_mandir}/man1/lmove.1*
+%{_mandir}/man1/lpost.1*
+%{_mandir}/man1/rpost.1*
+%{_mandir}/man1/suck.1*
+%{_mandir}/man1/testhost.1*
+
+%attr(640,root,root) %ghost %{_localstatedir}/suck.killlog
+%attr(640,root,root) %ghost /var/log/suck.errlog
 
 %{_examplesdir}/%{name}-%{version}
This page took 0.252811 seconds and 4 git commands to generate.