Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE
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 = @LIBEXECDIR@/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 @LIBEXECDIR@/news/Mail" +- create "@LIBEXECDIR@/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 + |@LIBEXECDIR@/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 @LIBEXECDIR@/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=@LIBEXECDIR@/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:@LIBEXECDIR@/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:@LIBEXECDIR@/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*:@LIBEXECDIR@/news/bin/buffchan -f 2 + +nntp!:!*:Tx,Wnm*:@LIBEXECDIR@/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