Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.2
gup
gup.dif
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gup.dif of Package gup
--- Makefile +++ Makefile @@ -14,8 +14,8 @@ # the executable is only used in a .forward so /usr/local/bin may # not be the most appropriate place - though it doesn't hurt. -BINDIR = /usr/local/bin -MANDIR = /usr/local/man/man1 +BINDIR = /usr/lib/news/bin +MANDIR = /usr/man/man1 ######################################################### @@ -28,12 +28,12 @@ # ACTIVE_PATH is the full pathname for your news active file. This # file is used to validate newgroup names. -ACTIVE_PATH = +ACTIVE_PATH = /var/lib/news/active # NEWSGROUPS_PATH is the fill pathname for your newsgroups file. This # file is used to provide descriptions for each newsgroup. -NEWSGROUPS_PATH = +NEWSGROUPS_PATH = /var/lib/news/newsgroups # BACKSTOP_MAILID is used if gup cannot find a FROM: or a REPLY-TO: or # a valid site command, this is where the mail goes to. @@ -41,7 +41,7 @@ # MAIL_COMMAND is the mailer that accepts a mail with rfc822 headers and # body from stdin. -MAIL_COMMAND = "/usr/lib/sendmail -t" +MAIL_COMMAND = "/usr/sbin/sendmail -t" # With a command like "include alt.*" the resultant list is, long. # LOG_MATCH_LIMIT, defines the upper bound on the number of pattern @@ -50,7 +50,7 @@ LOG_MATCH_LIMIT = 28 # The UMASK to use when creating files and directories. -UMASK = 022 +UMASK = 002 ################################################# @@ -71,18 +71,18 @@ xmakefile: Makefile main.mk ./config/$(CONFIG) @echo @echo Constructing xmakefile with ./config/$(CONFIG) - ( \ - cat ./config/$(CONFIG) ;\ - echo CONFIG=$(CONFIG) ;\ - echo BINDIR=$(BINDIR) ;\ - echo MANDIR=$(MANDIR) ;\ - echo ACTIVE_PATH=$(ACTIVE_PATH) ;\ - echo NEWSGROUPS_PATH=$(NEWSGROUPS_PATH) ;\ - echo BACKSTOP_MAILID=$(BACKSTOP_MAILID) ;\ - echo MAIL_COMMAND=$(MAIL_COMMAND) ;\ - echo LOG_MATCH_LIMIT=$(LOG_MATCH_LIMIT) ;\ - echo UMASK=$(UMASK) ;\ - cat main.mk ;\ + @( \ + cat ./config/$(CONFIG) ; \ + echo CONFIG=$(CONFIG) ; \ + echo BINDIR=$(BINDIR) ; \ + echo MANDIR=$(MANDIR) ; \ + echo ACTIVE_PATH=$(ACTIVE_PATH) ; \ + echo NEWSGROUPS_PATH=$(NEWSGROUPS_PATH) ; \ + echo BACKSTOP_MAILID=$(BACKSTOP_MAILID) ; \ + echo MAIL_COMMAND=$(MAIL_COMMAND) ; \ + echo LOG_MATCH_LIMIT=$(LOG_MATCH_LIMIT) ; \ + echo UMASK=$(UMASK) ; \ + cat main.mk ; \ ) >xmakefile @echo --- README.linux +++ README.linux @@ -0,0 +1,24 @@ +How to get gup running: Florian La Roche +======================= + +- add "newsgup: news" to /etc/aliases and don't forward "news"-postings + to "root" (delete the line with "news: root") + So "news" has no its own mail-folder and "newsgup" is an alias for it. +- "mkdir /usr/lib/news/Mail" +- create "/usr/lib/news/.procmailrc" with the followin lines: + (but do write the 2 last lines into one line...) + MAILDIR=$HOME/Mail + LOGFILE=$MAILDIR/from + LOCKFILE=$HOME/.lockmail + + :0 + * ^TO.*gup + |/usr/lib/news/bin/gup -P -d /var/lib/news/gup -l log \ + -m gup_headers -s sites +- Look at all files in /var/lib/news/gup/ and edit them to your taste. + Don't forget to change "gup_headers" to have a Reply-To: with + a complete hostname. +- You should run gupdate to update your newsfeeds file. Maybe use + the following entry in /etc/crontab: + 49 */6 * * * news /usr/lib/news/bin/gupdate + --- config/vanilla +++ config/vanilla @@ -1,4 +1,5 @@ # # Ultrix V4.3 Aherbert -P_CFLAGS = -g +P_CFLAGS = -Wall -O2 -pipe $(RPM_OPT_FLAGS) + --- gup.c +++ gup.c @@ -37,7 +37,7 @@ char *progname = "gup"; /* GC */ -FILE *log_fp = stderr; +FILE *log_fp; static char *usage = "\n\ @@ -166,6 +166,7 @@ int changed; umask(UMASK); + log_fp = stderr; parse_options(argc, argv); /* Decode our command line options */ --- rfc822.h +++ rfc822.h @@ -246,7 +246,9 @@ extern int errno; extern int sys_nerr; extern int optind; +#if !(defined __GLIBC__ && __GLIBC__ >=2) extern char *sys_errlist[]; +#endif extern char **environ; extern char *optarg; --- sample/config +++ sample/config @@ -1,2 +1,4 @@ -t t andrew@werple - +# Each line should have three entries: +# The name of the host, the password and an email address +# to which the result is emailed. +#host passwd mail@host.domain.com --- sample/default/exclude +++ sample/default/exclude @@ -0,0 +1 @@ +control --- sample/default/groups +++ sample/default/groups @@ -0,0 +1,2 @@ +local.* +!local.lists* --- sample/default/header +++ sample/default/header @@ -0,0 +1,2 @@ +# HOST Eintrag (HOST wird ersetzt durch site-namen) +HOST/HOST.saar.de:wg.*,\ --- sample/default/trailer +++ sample/default/trailer @@ -0,0 +1 @@ +local.adm/!local:Tm:uucp! --- sample/gup_headers +++ sample/gup_headers @@ -0,0 +1,2 @@ +Reply-To: postmaster +Subject: Your GUP request processing result --- sample/gupadd +++ sample/gupadd @@ -0,0 +1,29 @@ +#! /bin/sh +umask 077 +if [ -z "$1" -o -z "$2" -o -z "$3" ]; then + cat <<EOM +addsite: add a new site to feed +usage: addsite [-f] "sitename" "gup passwort" "email address for replies" +Be aware of the fact that the newsfeeds-file is not updated, but +must be brought up to date with gupdate +EOM + exit 0 +fi +# configuration variables +site=$1 +passwd=$2 +mail=$3 +. /var/lib/news/gup/gupconfig +if [ -d $sitedir ] || grep -s "^$site[ \t]" $gupdir/config ; then + echo "The directory $sitedir already exists or this host is already" + echo "in your $gupdir/config file." + exit 1 +fi +mkdir -p $sitedir +ln -sf $defhdr $sitedir/header +ln -sf $deftrail $sitedir/trailer +sed -e "s/HOST/$site/g" $defgroup >$sitedir/groups +ln -sf $defexcl $sitedir/exclude +echo "creating new entry in config file" +echo "$site $passwd $mail" >>$gupdir/config +exit 0 --- sample/gupconfig +++ sample/gupconfig @@ -0,0 +1,25 @@ +# +# set variables for gup configuration +# (you should not need to edit this file) +# +gupdir=/var/lib/news/gup +newsdir=/var/lib/news +newsspool=/var/spool/news +sitesdir=$gupdir/sites +sitedir=$sitesdir/$site +default=$gupdir/default +defhdr=$default/header +deftrail=$default/trailer +defgroup=$default/groups +defexcl=$default/exclude +# the username that gup runs as +gup_uid=news + +# gupdate writes a new newsfeeds file $newsfeeds.new is also used +# as temporary file +newsfeeds=/var/lib/news/newsfeeds +mailcmd=/bin/mail +# error mails go to this person +news_admin=postmaster +ctlinnd=/usr/lib/news/bin/ctlinnd + --- sample/gupdate +++ sample/gupdate @@ -0,0 +1,51 @@ +#! /bin/sh +# A script to rebuild the newsfeed file after a gup run + +. /var/lib/news/gup/gupconfig +PATH=/usr/bin:/bin:/usr/lib/news/bin + +########################### end of user-config stuff ########################## + +cd $gupdir +( + cat newsfeeds.start + cd sites + for h in * ; do + if [ -s "$h/groups" ]; then + echo + sed -e "s/HOST/$h/g" $h/header #header + sed -e 's/$/,\\/g' -e 's/\\.\\*$//g' $h/groups #body + sed -e "s/HOST/$h/g" $h/trailer #trailer + fi + done + cd .. + cat newsfeeds.end +) >$newsfeeds.new + +# commit the new version +mv -f $newsfeeds.old $newsfeeds.old1 +mv -f $newsfeeds $newsfeeds.old +mv $newsfeeds.new $newsfeeds + +# verify that it's ok +$ctlinnd checkfile >/dev/null 2>/dev/null +ok=$? +if [ "$ok" -ne 0 ]; then + echo "argh! $newsfeeds verification failed - moving back previous version" + mv $newsfeeds $newsfeeds.broken + mv -f $newsfeeds.old $newsfeeds + $mailcmd -s "gup newsfeeds failure!" $news_admin <<SIGH +gup has gone weird - the generated newsfeeds file has been rejected by +$ctlinnd checkfile. Please check: + $newsfeeds.broken + +to determine the source of the problem. + +yours in efficiency, +the gupdate daemon +SIGH + exit 1 +fi + +# tell INN about it +$ctlinnd reload newsfeeds gupup 2>&1 >/dev/null --- sample/gupverify +++ sample/gupverify @@ -0,0 +1,21 @@ +#! /bin/sh +# A script to check gup consistency + +. /var/lib/news/gup/gupconfig +verify_file () { + [ -f "$1" ] && return + echo "linking $1 -> $2" + ln -sf $1 $2 +} +for h in $sitesdir/* ; do + site=`basename $h` + echo $site + verify_file $h/header $defhdr # header + if [ ! -f $h/groups ]; then # body + echo "copying basic groups entry (performing customization) -> $h/groups" + sed -e "s/HOST/$site/g" $defgroup >$h/groups + fi + verify_file $h/trailer $deftrail # trailer + verify_file $h/exclude $defexcl # exclusions +done +chown $gup_uid $sitesdir/*/groups --- sample/newsfeeds.end +++ sample/newsfeeds.end @@ -0,0 +1,6 @@ +# Beginning of /var/lib/news/gup/newsfeeds.end. +# This is used as the end of /var/lib/news/newsfeeds. + +# This is currently empty, we don't need any entries here... + +# End of /var/lib/news/gup/newsfeeds.end. --- sample/newsfeeds.start +++ sample/newsfeeds.start @@ -0,0 +1,26 @@ +# Beginning of /var/lib/news/gup/newsfeeds.start. +# This is used as the start of /var/lib/news/newsfeeds. + +ME:*:: + +# for NOV overview database +OVERVIEW!:*:Tc,WO:/usr/lib/news/bin/overchan + +# sample entry for UUCP +#hugo/hugo.suse.de:*,!junk,!control*:Tf,Wnb,B4096/1024: + +# sample entry for NNTP +#hugo.suse.de:*,!junk,!control*:Tf,Wnm:hugo.suse.de + +uucp!:!*:Tx,Wnb*:/usr/lib/news/bin/buffchan -f 2 + +nntp!:!*:Tx,Wnm*:/usr/lib/news/bin/buffchan -f 2 + +# the upstream uucp news server +#server/server.com\ +# :*,!junk/!local:Tm:uucp! +# the upstream nntp news server +#server/server.com\ +# :*,!junk/!local:Tm:nntp! + +# End of /var/lib/news/gup/newsfeeds.start --- lock.c.orig 2008-01-24 11:12:09.000000000 +0100 +++ ./lock.c 2008-01-24 11:12:20.000000000 +0100 @@ -38,7 +38,7 @@ lockit() sleep(LOCK_SLEEP); } if (fd < 0 && errno == EEXIST) { - fd = open("LOCK", O_CREAT | O_WRONLY); + fd = open("LOCK", O_CREAT | O_WRONLY, 0600); if (fd >= 0) logit(L_LOG, "WARNING", "Trashed pre-existing lock"); }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor