Hi
OpenBSD project has ports tree which contains a lot of applications
(about 8k in latest release).
I believe it is a lot of pain for maintainers of these ports to keep
port in 'up to date' state and not less pain to keep eyes on
the latest version of applications.
I suggest to implement target in bsd.port.mk which allows to check availability
of new app version
for each port. It is based on fact that developers publish archives with latest
version but archive
has fixed name.
Patch implements that idea is attached. It is a little bit ugly,
but it can say more than words above.
I have found al least 7 projects where developers publish such archives.
They are: redis, samba, gnu tar, webmin, ruby, videolan, mercurial.
Patches for database/redis and net/samba ports are attached.
And now it looks like:
$ make check-latest
===> Checking files for redis-2.8.3
`/usr/ports/distfiles/redis-2.8.3.tar.gz' is up to date.
===> Checking files for redis-2.8.3
`/usr/ports/distfiles/redis-stable.tar.gz' is up to date.
File redis-2.8.3.tar.gz has newer version
Sergey B.
Index: bsd.port.mk
===================================================================
RCS file: /cvs/ports/infrastructure/mk/bsd.port.mk,v
retrieving revision 1.1255
diff -u -p -r1.1255 bsd.port.mk
--- bsd.port.mk 9 Jan 2014 10:44:33 -0000 1.1255
+++ bsd.port.mk 19 Jan 2014 13:13:33 -0000
@@ -399,6 +399,9 @@ CONFIGURE_ENV += CCACHE_DIR=${CCACHE_DIR
BUILD_DEPENDS += devel/ccache
.endif
+DISTNAME_LATEST ?=
+MASTER_SITES_LATEST ?=
+
ALL_FAKE_FLAGS= ${MAKE_FLAGS:N-j[0-9]*} ${DESTDIRNAME}=${WRKINST}
${FAKE_FLAGS}
.if ${LOCALBASE:L} != "/usr/local"
@@ -2240,7 +2243,7 @@ _internal-fetch:
. if !empty(CHECKSUMFILES)
@${_MAKE} ${CHECKSUMFILES:S@^@${DISTDIR}/@}
. endif
-# End of FETCH
+# End of FETCH:
_internal-checksum: _internal-fetch
@@ -3298,6 +3301,26 @@ _recurse-show-run-depends:
exit 1; \
fi; \
done
+
+check-latest: makesum
+.if !empty(DISTNAME_LATEST)
+ @${MAKE} fetch DISTFILES=${DISTNAME_LATEST}${EXTRACT_SUFX} \
+ MASTER_SITES=${MASTER_SITES_LATEST}
+
+ @for c in ${_CIPHERS:U}; do \
+ fgrep ${DISTNAME} ${CHECKSUM_FILE} | \
+ fgrep $$c | awk '{ print $$NF }' | \
+ while read f; do \
+ cd ${DISTDIR} && cksum -b -q -a $$c
${DISTNAME_LATEST}${EXTRACT_SUFX} | \
+ while read k; do \
+ if test $$f != $$k; then \
+ echo 1>&2 "File ${DISTFILES} has newer
version"; \
+ exit; \
+ fi; \
+ done; \
+ done; \
+ done;
+.endif
show-run-depends:
.if !empty(_RUN_DEP)
Index: Makefile
===================================================================
RCS file: /cvs/ports/net/samba/Makefile,v
retrieving revision 1.189
diff -u -p -r1.189 Makefile
--- Makefile 5 Dec 2013 13:08:50 -0000 1.189
+++ Makefile 19 Jan 2014 13:15:29 -0000
@@ -16,6 +16,9 @@ SHARED_LIBS= smbclient 3.0 \
netapi 1.0 \
wbclient 1.0
+DISTNAME_LATEST= samba-latest
+MASTER_SITES_LATEST= https://www.samba.org/samba/ftp/
+
CATEGORIES= net
HOMEPAGE= http://www.samba.org/
Index: Makefile
===================================================================
RCS file: /cvs/ports/databases/redis/Makefile,v
retrieving revision 1.61
diff -u -p -r1.61 Makefile
--- Makefile 15 Jan 2014 07:08:13 -0000 1.61
+++ Makefile 19 Jan 2014 13:16:02 -0000
@@ -7,6 +7,9 @@ HOMEPAGE = http://redis.io/
MAINTAINER = David Coppa <[email protected]>
+DISTNAME_LATEST = redis-stable
+MASTER_SITES_LATEST = http://download.redis.io/
+
# BSD
PERMIT_PACKAGE_CDROM = Yes