blob: 97e1f0167052c5254bf8361fa3807f7d6c2f371b (
plain) (
blame)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
#!/bin/sh
#
# Iterate over the ports collection, assemble the list of LATEST_LINKs and
# then look for duplicates. Send a nag-mail to the responsible maintainers.
# Sanitize environment
export __MAKE_CONF=/dev/null
export PORT_DBDIR=/nonexistent
export PKG_DBDIR=/nonexistent
export LOCALBASE=/nonexistent
if [ -z "${PORTSDIR}" ]; then
PORTSDIR=/usr/ports
fi
if [ "$1" = "-nomail" ]; then
NOMAIL=1
else
NOMAIL=0
fi
cd ${PORTSDIR}
CATEGORIES=$(make -V SUBDIR)
for cat in ${CATEGORIES}; do
cd ${PORTSDIR}/${cat}
dirs=$(make -V SUBDIR)
make "PORTSDIR=${PORTSDIR}" "CATEGORY=${cat}" "DIRS=${dirs}" -k -j3 -f - << "EOF"
all: ${DIRS:S/$/.portinfo/}
.for d in ${DIRS}
${d}.portinfo:
@cd ${PORTSDIR}/${CATEGORY}/${d}; make 'portinfo=$${NO_LATEST_LINK}| $${MAINTAINER} $${.CURDIR:S,${PORTSDIR}/,,} $${LATEST_LINK}' -V portinfo
.endfor
EOF
done | grep '^|' > ${PORTSDIR}/.latest_link
cd ${PORTSDIR}
(awk '{print " " $4 "$"}' < .latest_link) | sort | uniq -d > .latest_dups
grep -f .latest_dups .latest_link | sort -i -k4 > .latest_full
maint=$(awk '{print $2}' < .latest_full | sort -ui | tr '\n' ' ')
(echo "Dear port maintainers,"
echo
echo "The following list includes ports maintained by you that have duplicate"
echo "LATEST_LINK values. They should either be modified to use a unique"
echo "PKGNAME, e.g. by using PKGNAMESUFFIX. Note that NO_LATEST_LINK is"
echo "deprecated. See the portmgr blog post for more information:"
echo "http://blogs.freebsdish.org/portmgr/2013/10/03/package-name-collisions/"
echo
echo
echo "Thanks,"
echo "Erwin \"Annoying Reminder Guy III\" Lansing"
echo
echo
printf "%-20s %-30s %-20s\n" "LATEST_LINK" "PORTNAME" "MAINTAINER"
echo "=========================================================================="
while read dummy i j k; do
printf "%-20s %-30s %-20s\n" $k $j $i
done < .latest_full
num=$(wc -l .latest_full | awk '{print $1}')
echo
echo "Total: $num ports") > .latest_mail
if [ "${NOMAIL}" = "0" ]; then
for i in ${maint}; do
mail -s "Ports with duplicate LATEST_LINKs" $i < .latest_mail
done
# Copy to erwin@
mail -s "Ports with duplicate LATEST_LINKs" erwin@FreeBSD.org < .latest_mail
else
cat .latest_mail
fi
rm .latest_dups .latest_full .latest_link .latest_mail
|