On Sun, January 19, 2014 19:06, Sergey Bronnikov wrote: > On 14:57 Sun 19 Jan , Antoine Jacoutot wrote: >> On Sun, Jan 19, 2014 at 05:47:14PM +0400, Sergey Bronnikov wrote: >> > Oops, mail is actually for ports@, not for misc@. >> > >> >> I think it'd be better to port or implement sth like portscout. >> http://www.inerd.com/software/portscout/ > > Wow, I didn't know about it.
Hi. If you want to give it a spin, I have a port "bootstrap". Not usable yet. http://cvs.linklevel.net/index.cgi/ports/misc/portscout/portscout.tar.gz?tarball=1 > > Yep, it can be probably better. But from my POV portscout has several > 'contras': > - it is unreliable because it is based on regexp which mainstream can easy > broke. You can use www/urlwatch and write your own regexps. You can even add regexp list to files directory in port, so other porters can add their own regexps and keep all this stuff in sync. > My solution is more reliable because based on hashes comparison. > - it require to add regexp for each port. > I believe it is easier to add URL to Makefile than create regexps for each > archive in port. :) > - portscout requires web service (anybody want to host it and maintain?) > > Having additional target in bsd.port.mk allows us to keep info about port > up2date state > in sqlports. And then show it on existed services like ports.su (which based > on sqlports). > > But still would like to hear more opinions. > >> > On 17:38 Sun 19 Jan , Sergey Bronnikov wrote: >> > > 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.] As for me, we need only notifications about new versions, not auto-ports-tree-update tool. >> > > >> > > 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/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 <dco...@openbsd.org> >> > >> > +DISTNAME_LATEST = redis-stable >> > +MASTER_SITES_LATEST = http://download.redis.io/ >> > + >> > # BSD >> > PERMIT_PACKAGE_CDROM = Yes >> > >> >> > 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/ >> >> >> -- >> Antoine > >