From: Eitan Adler on
I was hoping to get a bit more of a response to a recent posting of
mine with regard to using svn to fetch files for ports
My proposal: http://www.mail-archive.com/freebsd-ports(a)freebsd.org/msg23776.html
A summary of what has been going on:
http://wiki.freebsd.org/EitanAdler/ports-svn

This is something that more than 2 people should have an input on
_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"

From: Marcin Wisnicki on
On Sun, 08 Nov 2009 17:31:57 +0200, Eitan Adler wrote:

> I was hoping to get a bit more of a response to a recent posting of mine
> with regard to using svn to fetch files for ports My proposal:
> http://www.mail-archive.com/freebsd-ports(a)freebsd.org/msg23776.html A
> summary of what has been going on:
> http://wiki.freebsd.org/EitanAdler/ports-svn
>
> This is something that more than 2 people should have an input on

Unless you solve plist problem (and completely automated plist generation
would be a fantastic thing to have!), such functionality should not be
available (or at least advertised) to end-users.
You may also consider moving it to separate file (bsd.maintainer.mk).

I don't quite get the logic behind ${USER} == ${SVN_USER} conditional.
Why do you assume that if my username is the same as username for svn
checkout then I want to upload snapshot to freefall ? In addition not
every maintainer has @freebsd.org account. Uploading should be
customizable (maybe UPLOAD_CMD - like FETCH_CMD).

Other than that I really like the idea (maintainer part) since I had to
do something similar recently with smartmontools and having a
standardised way to prepare ports for svn snapshots would have saved me
some time. FWIW here is how I did it (in port's Makefile):

PORTVERSION= 5.38.r${SVNREVISION}
SVNREVISION= 2924
# no prebuilt files in svn
USE_AUTOTOOLS= aclocal:110 autoheader:262 automake:110 autoconf:262
# skip...
..if defined(MAINTAINER_MODE)
DISTFILES=
SVN_URL= https://path/to/trunk

x-maintainer-make-snapshot:
svn export -r${SVNREVISION} ${SVN_URL} ${DISTNAME}
${TAR} -cjvf ${DISTNAME}.tar.bz2 ${DISTNAME}
${RM} -rf ${DISTNAME}

post-extract:
svn co -r${SVNREVISION} ${SVN_URL} ${WRKSRC}

..if defined(HEAD_REVISION)
SVNREVISION!= svn info ${SVN_URL} | grep "^Last Changed Rev:" \
| awk '{print $$4}'
..endif

# TODO generate plist
..endif # MAINTAINER_MODE

_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"

From: Doug Barton on
Eitan Adler wrote:
> I was hoping to get a bit more of a response to a recent posting of
> mine with regard to using svn to fetch files for ports
> My proposal: http://www.mail-archive.com/freebsd-ports(a)freebsd.org/msg23776.html
> A summary of what has been going on:
> http://wiki.freebsd.org/EitanAdler/ports-svn

I was really hoping that others would have more to say as well. My
chief concern is that unless I'm missing something there is no way to
provide checksums for the source files, correct? If that's true my gut
reaction is "no freakin' way" but I'm willing to listen to arguments
as to why this should be ok.

I tend to agree with the other sentiments already expressed that in
cases where svn is the only way a project distributes its source that
maintainers ought to be putting together tarballs of specific
versions. I don't really see that this is an overwhelming burden, but
again I'm open to arguments as to why I might be wrong about this.


Doug

--

Improve the effectiveness of your Internet presence with
a domain name makeover! http://SupersetSolutions.com/

_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"

From: Thomas Sandford on
Doug Barton wrote:
> Eitan Adler wrote:
>> I was hoping to get a bit more of a response to a recent posting of
>> mine with regard to using svn to fetch files for ports
>> My proposal: http://www.mail-archive.com/freebsd-ports(a)freebsd.org/msg23776.html
>> A summary of what has been going on:
>> http://wiki.freebsd.org/EitanAdler/ports-svn
>
> I was really hoping that others would have more to say as well. My
> chief concern is that unless I'm missing something there is no way to
> provide checksums for the source files, correct? If that's true my gut
> reaction is "no freakin' way" but I'm willing to listen to arguments
> as to why this should be ok.
>
> I tend to agree with the other sentiments already expressed that in
> cases where svn is the only way a project distributes its source that
> maintainers ought to be putting together tarballs of specific
> versions. I don't really see that this is an overwhelming burden, but
> again I'm open to arguments as to why I might be wrong about this.

OK - "I think you might be wrong about this"

A classic example is the net/freeswitch port where the porter has done
exactly what you say.

(IMHO they've not done it in an optimal way but...)

1) It is not clear from the Makefile what version they are actually using.

2) It is indeed unclear from the Makefile what the provenance of the
fetched tarball is at all.

3) It is very difficult for anyone other than the maintainer to create
an update of the port either for local use or for submission of a patch.

(and writing this I note that (4) the distfile location has dropped off
the net)

(1) and (2) could be _improved_ by more documentation in the Makefile
and better choice of versioning scheme but 3 is fairly fundamental.

What _I'd_ like to see is a development of a combination of "method 1" &
"method 2" from the wiki page referenced above.

Running "make fetch" would perform an svn export, and would generate a
tarball from this in ${DISTDIR} named as ${PORTNAME}-${PORTVERSION}.t[gb]z.

A maintainer can then upload this (or the ports distfile handling system
at freebsd.org could even be modified to do this automagically) BUT it
now exists on the users system which means that all the rest of the
ports system including

* _not_ refetching every time the port is built _unless_ the distfile
has changed
* the ability to checksum the (generated) distfile
* (depending on the exact implementation of the new fetch target) the
ability to fallback on fetching a distfile copy from
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/[distfile]

works as for a "normal" port.

However it is now:
* transparent exactly what is being fetched.
* easy to update the port to fetch a later version by a one line
Makefile edit followed by "make makesum" as is the case for a "standard"
port.

(Obviously the editor of the Makefile needs to carry out checks to
ensure that the PLIST doesn't need to be updated, or other changes made,
to work with the updated revision - as for any other port update).

--
Thomas Sandford
_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"

From: Brooks Davis on
On Sun, Nov 08, 2009 at 07:07:25PM +0000, Marcin Wisnicki wrote:
> On Sun, 08 Nov 2009 17:31:57 +0200, Eitan Adler wrote:
>
> > I was hoping to get a bit more of a response to a recent posting of mine
> > with regard to using svn to fetch files for ports My proposal:
> > http://www.mail-archive.com/freebsd-ports(a)freebsd.org/msg23776.html A
> > summary of what has been going on:
> > http://wiki.freebsd.org/EitanAdler/ports-svn
> >
> > This is something that more than 2 people should have an input on
>
> Unless you solve plist problem (and completely automated plist generation
> would be a fantastic thing to have!), such functionality should not be
> available (or at least advertised) to end-users.
> You may also consider moving it to separate file (bsd.maintainer.mk).
>
> I don't quite get the logic behind ${USER} == ${SVN_USER} conditional.
> Why do you assume that if my username is the same as username for svn
> checkout then I want to upload snapshot to freefall ? In addition not
> every maintainer has @freebsd.org account. Uploading should be
> customizable (maybe UPLOAD_CMD - like FETCH_CMD).

It's a generalization of an ugly hack I put in my llvm-devel port. I
don't really think it should be part of the base.

-- Brooks