Thank you for your swift response! I read through the guide and have tried to understand the task in detail.
I've shared a draft proposal with MacPorts on the GSOC site. Please review. Regards, Chinmaya On Fri, 31 Mar 2017 at 01:02 Rainer Müller <rai...@macports.org> wrote: > Hello, > > On 03/30/2017 04:04 PM, Chinmaya Bhat wrote: > > I am Chinmaya, a third-year Computer Science student at BMSIT, > Bangalore. I am > > new to MacPorts. I can code in C and Python and am going through the Tcl > > tutorial on the GSOC wiki. > > I have installed MacPorts and am reading the documentation provided. > > Thank you for your interest in MacPorts! That already seems like a good > start. > > > I'm interested in implementing the task "Improve fetching from version > control" > > and I have read through the trac ticket < > https://trac.macports.org/ticket/16373> > > provided with it. > > As noted in the Trac ticket, I implemented parts of this last year during > the > MacPorts meeting together with Mojca. > > This can be found on the vcs-fetch branch of macports-base: > https://github.com/macports/macports-base/compare/vcs-fetch > > The implementation already works for git and creates reproducible tarballs > with > its internal 'git archive' command. However, nothing has yet been done for > other > version control systems. I think it would be preferable that all > fetch.types for > VCS work the same, therefore I did not merge it yet. > > The idea is that for the fetch.types for VCS, port automatically generates > a > tarball in the fetch phase. It also sets the distfiles option such that > subsequent checksum and extract phases work like for every other port. > Such a > Portfile will then always require checksums. Therefore, the generated > tarball > has to be reproducible, which means the process in the fetch phase will > have to > always generate the exact same byte-to-byte identical tarball. > > > However, I dont understand how to implement it. > > Where are the distfiles and work dir located? > > Ports that use a fetch.type for a VCS do not have any explicit distfiles, > but > the filename of the tarball is implicitly taken from its name and VCS > tag/revision. The work dir is created when building a port locally. > > Read through the explanations of the different phases to understand how a > port > is built: > https://guide.macports.org/#reference.phases > > > Do I need to edit the Portfile of every application individually to > check for > > the latest working copy? > > The Portfiles will need additional checksums for the generated tarballs, > but > everything else should still work as it is now. > > > Also, do I need to know cvs/svn/hg/bzr ? I know git and nothing about > the rest. > > Knowledge about these tools can be acquired during the task. There is no > requirement of knowing them before starting with this. Mainly you will > only have > to know about how to clone or checkout a working copy, for which the > commands > are already in the base code. > > As a second step in this project, we will also want to provide these > generated > VCS tarballs on our mirrors. The port command should first try to fetch a > generated tarball from our mirrors before attempting to generate a tarball > locally (reducing dependencies, avoiding firewalls for git:// protocol, > etc). > > Rainer >