aboutsummaryrefslogtreecommitdiffstats
path: root/README.packaging
blob: f26aa9fb9b1687b630091321b6603455b70ffa02 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
README.packaging
================

fetchmail 6.3.0 changes relevant for packagers
----------------------------------------------

Greetings, dear packager!

There are now some changes to the fetchmail 6.3.0 installation layout,
which are given as headwords below.

- fetchmail now uses automake and supports all common automake targets
  and overrides such as "make install-strip" or "DESTDIR=..." for staging
  areas

- the fetchmailconf script has been renamed to fetchmailconf.py,
  automake will install it into Python's top-level site-packages directory
  and byte-compile it (so you need to package or remove
  fetchmailconf.pyc and fetchmailconf.pyo as well)

- the Makefile generates a two-line "fetchmailconf" /bin/sh wrapper
  script that executes the actual fetchmailconf.py with the python
  installation found at configuration time, so that users can still type
  "fetchmailconf" rather than "python fetchmailconf"

- note that fetchmailconf.py supports a few command line arguments, so
  it you use local wrapper scripts, be sure they pass on their own
  arguments properly.

- there is now a dummy fetchmailconf manual page which will just source
  (roff's ".so" command) the fetchmail manual page for now. You can of
  course keep your symlinks in place and ignore this dummy. IF you
  install the dummy and compress your man pages, be sure to test "man
  fetchmailconf", on some systems, you'll need to adjust the ".so"
  command to point to the compressed version.
l.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#!/bin/sh
#
# growthplot -- plot the fetchmail project's growth as a function of time
#

PATH="$PATH:.:./dist-tools"; export PATH

tmp=/tmp/fetchmail-growthplot.$$
mkdir $tmp

# Get data from the NEWS file
timeseries >$tmp/growthplot$$
grep "^[0-9]" $tmp/growthplot$$ >$tmp/growthnumbers$$
grep "^[0-9.]*.[05].0	" $tmp/growthplot$$ >$tmp/growthmajors$$
sed '/^4.2.9/,$d' <$tmp/growthnumbers$$ >$tmp/growthannounce$$

# gnuplot line styles.  These occasionally change (like beteween 3.5 and 3.7);
# use "echo 'set terminal png; test' | gnuplot | display -" to check.
blue_boxes=3
green_crosses=2
cyan_diamonds=37	# Once purple triangles, but we can't do that anymore
brown_triangles=23

cat >$tmp/growthimage$$ <<EOF
set title "Fetchmail project growth history"
set xlabel 'Days since baseline'
set ylabel 'Participants'
set y2label 'Lines of code'
set ytics nomirror
set y2tics
set tics out
set autoscale y
set y2range [5000:50000]
set key bottom right box
set terminal png

EOF

# OK, now write the event labels
(
	count=0
	lastday=0
        breakheight=510
	while read version legend
	do
		if [ "$version" = '%' ]
		then
			echo "# Associate $lastday to '$legend'"
			count=$((count+1))
		        lastday=$(($lastday-5))
			endy=$((breakheight+50+count*50))
			if ((endy>lasttotal))
			then
			    # Label over curve hanging right, arrow down
			    arrowhead=$((lasttotal+50))
			    echo "set label '$legend' at $lastday-10, $endy+15"
			else
			    # Label under curve hanging left, arrow up
			    arrowhead=$((lasttotal-5))
			    strlen=`python -c "print len('$legend')"`
			    lablen=$((strlen*22))
			    echo "set label '$legend' at $lastday-$lablen+10, $endy-15"
			fi
			echo set arrow \
				from $lastday, $endy \
				to $lastday, $arrowhead \
				head
		else
			set -- $legend
			size=$1 
			friends=$2
			announce=$3
			total=$4
			days=$5 
			date=$6
			lastday=$days
			lasttotal=$total
		fi
	done
) <$tmp/growthplot$$ >>$tmp/growthimage$$ 

# OK, now write the major-release labels
(
	while read version size friends announce total days date
	do
	    echo "set arrow from $days, $total - 55 to $days, $total - 15 head"
	    echo "set label '$version' at $days - 5, $total - 65"
	done
) <$tmp/growthmajors$$ >>$tmp/growthimage$$ 

cat >>$tmp/growthimage$$ <<EOF
plot [] [0:] '$tmp/growthnumbers$$' using 6:5 \
		title "Both lists" with points $blue_boxes, \
     '$tmp/growthannounce$$' using 6:4 \
		title "fetchmail-announce" with points $cyan_diamonds, \
     '$tmp/growthannounce$$' using 6:3 \
		title "fetchmail-friends" with points $green_crosses, \
     '$tmp/growthnumbers$$' using 6:2 axes x1y2 \
		title "Lines of code" with points $brown_triangles
EOF

gnuplot $tmp/growthimage$$ >growth.png

rm -f $tmp/growth*
rmdir $tmp

# growthplot ends here