[PC-BSD Dev] pcbsd system source idea and question

Joe Maloney jpm820 at gmail.com
Wed Dec 18 10:03:54 PST 2013


Great idea Kris.  That would do it.  I will see if I can get this done
tonight after work.  

Joe Maloney
    
On Wed, 2013-12-18 at 12:52 -0500, Kris Moore wrote:
> On 12/14/2013 12:56, Joe Maloney wrote:
> 
> > Ok since this is going to take me a while here is what I have so
> > far. 
> > 
> > 
> > portsnapprogress.h
> > http://pastebin.com/yDLMJnhk
> > 
> > portsnapprogress.cpp
> > http://pastebin.com/S8BsmpSr
> > 
> > 
> > When I first started this I ran into the limitation with git that it
> > can’t clone into a dir like /usr/ports/ which has an existing dir
> > like /usr/ports/distfiles.  Which also is a dataset.  Otherwise this
> > would have been easy by just using your example for fetchsource()
> > and renaming the buttons in portsnapprogress.ui.  
> > 
> > 
> > The only way to fix this in git was to change some things in the
> > global configuration for git so I didn’t think that would be a good
> > idea.  I didn’t think running git clone to a temp dir and moving it
> > was a really clean way of doing it either.  So I started with the
> > idea that I would init a fresh repo in /usr/ports.  Then add the
> > pcbsd ports tree as an upstream repo.  Then fetch the ports and
> > merge them.  This way if /usr/ports/.git/config existed with an
> > upstream repo I could just fetch and merge only the updates and not
> > have to re-clone the entire thing.  I think this could work for
> > fetchsource() also if you wanted to only grab the updates quickly
> > each time.
> > 
> > 
> > What I’m missing is the code to check /usr/ports/.git/config to
> > check to see if the upstream repo has been added, add it, otherwise
> > continue on to fetch ports.  Then continue on to fetchports()
> > mergeports().  Also I’ve ripped out some of the functions the fetch
> > done stuff at the end of the script while I was testing.
> > 
> > 
> > Although I’ve learned a few things so far I’m by no means an expert
> > in qt.  So I figured I would pass along what I’ve been able to
> > figure out so far.  I see that some similar things already with pcdm
> > as far as parsing config files with qt so I suspect someone will
> > know how to finish this.  I just wasn’t sure how to implement that
> > type of function for what I was trying to do here.  I will continue
> > researching it but if someone is able to finish this before I do or
> > do it another way I will just learn from the examples.  
> > 
> > 
> > Joe Maloney
> > 
> > 
> > 
> > 
> 
> So, I'm a big fan of "simple" solutions :)
> 
> Maybe what you do is this. Have 2 buttons, "Init ports tree" and
> "update ports tree"
> 
> The init one will do a destructive clone of our ports tree
> into /usr/ports, removing and replacing whatever is already there.
> (That is what you would run the first time of course)
> 
> Then if you detect we have /usr/ports/.git, enable the "update ports
> tree" button which just does a "git pull origin master".  
> 
> If the user is already manually checking out files into /usr/ports
> from elsewhere, then I would expect them to continue managing it from
> the CLI or other methods. This would be more for new users who want to
> get an initial checkout, update, or blow-away a bad ports tree they
> mangled.
> 
> -- 
> Kris Moore
> PC-BSD Software
> iXsystems
> _______________________________________________
> Dev mailing list
> Dev at lists.pcbsd.org
> http://lists.pcbsd.org/mailman/listinfo/dev




More information about the Dev mailing list