Opened 17 years ago

Closed 16 years ago

Last modified 11 years ago

#13704 closed enhancement (fixed)

selfupdate, anything over http?

Reported by: andre.david@… Owned by: macports-tickets@…
Priority: Normal Milestone: MacPorts 1.7.0
Component: base Version: 1.6.0
Keywords: Cc: markd@…, boeyms@…, simon@…
Port:

Description

Hi,

My ISP sucks and I cannot use rsync. I was looking for a way to do selfupdate using only http.

Any ideas out there?

Thanks,

Andre

Change History (9)

comment:1 Changed 17 years ago by andre.david@…

For instance: could I use svn?

comment:2 Changed 17 years ago by jmpalacios (Juan Manuel Palacios)

Cc: markd@… boeyms@… simon@… added

selfupdate is composed of two rather orthogonal actions: sync, which synchronizes your ports tree with the latest revisions to the Portfiles, and selfupdate itself (so much for clarity!), which rebuilds MacPorts if outdated with respect to our latest release. sync can indeed be performed over svn, but unfortunately we currently do not provide a mean for the former (selfupdate) over anything but rsync. Such request makes up for a fine MacPorts enhancement, so I'll leave this ticket open to track it.

As for sync, you have to do three things in order to synchronize your ports tree over svn:

  1. Pick a /path/to/your/portsdir onto which you'll check it out of our repository at http://svn.macports.org/repository/macports/trunk/dports;
  1. Add an entry for that svn based ports dir to your ${prefix}/etc/macports/sources.conf file, in the form of file:///path/to/your/portsdir;
  1. Comment out the rsync based rule that takes care of sync'ing over rsync (rsync://rsync.macports.org/release/ports/).

Once that's done, a "port sync" call will pull the new Portfiles from svn rather than rsync.

Lastly, as for rebuilding MacPorts itself, you can also check out the base code out of svn and rebuild it with the manual ./configure && make dance; Not as handy as the "port selfupdate" one liner... but at least something ;-) You can checkout either trunk at http://svn.macports.org/repository/macports/trunk/base or any of our branches at http://svn.macports.org/repository/macports/branches -- pick the http://svn.macports.org/repository/macports/branches/release_1_6/base URL if you wish to track the 1.6 set of releases, which is equivalent to selfupdating off the release/base/ rsync module as per default behavior.

Let me know if you have any questions!

-jmpp

PS: I think these explanations make up for good documentation enhancements, so I'm Cc'ing our docs guys into this ticket so they can have a look and cook something up for our guide ;-)

comment:3 in reply to:  2 Changed 17 years ago by andre.david@…

Replying to jmpp@macports.org:

selfupdate is composed of two rather orthogonal actions: sync, which synchronizes your ports tree with the latest revisions to the Portfiles, and selfupdate itself (so much for clarity!), which rebuilds MacPorts if outdated with respect to our latest release. sync can indeed be performed over svn, but unfortunately we currently do not provide a mean for the former (selfupdate) over anything but rsync. Such request makes up for a fine MacPorts enhancement, so I'll leave this ticket open to track it.

Thanks!

As for sync, you have to do three things in order to synchronize your ports tree over svn:

  1. Pick a /path/to/your/portsdir onto which you'll check it out of our repository at http://svn.macports.org/repository/macports/trunk/dports;
  1. Add an entry for that svn based ports dir to your ${prefix}/etc/macports/sources.conf file, in the form of file:///path/to/your/portsdir;
  1. Comment out the rsync based rule that takes care of sync'ing over rsync (rsync://rsync.macports.org/release/ports/).

Once that's done, a "port sync" call will pull the new Portfiles from svn rather than rsync.

Lastly, as for rebuilding MacPorts itself, you can also check out the base code out of svn and rebuild it with the manual ./configure && make dance; Not as handy as the "port selfupdate" one liner... but at least something ;-) You can checkout either trunk at http://svn.macports.org/repository/macports/trunk/base or any of our branches at http://svn.macports.org/repository/macports/branches -- pick the http://svn.macports.org/repository/macports/branches/release_1_6/base URL if you wish to track the 1.6 set of releases, which is equivalent to selfupdating off the release/base/ rsync module as per default behavior.

Let me know if you have any questions!

-jmpp

PS: I think these explanations make up for good documentation enhancements, so I'm Cc'ing our docs guys into this ticket so they can have a look and cook something up for our guide ;-)

After doing everything, I can confirm that the recipe works. Anyway, after trying it out, it seems to me that this is the vanilla way for a dev to get things going, so it actually answers my next ticket since I have been thinking about adding some ports of my liking.

Happy New Year,

Andre

PS: I was wondering about jmpp and...

$ grep -R "jmpp\@macports.org" /opt/local/ | wc -l
2025

comment:4 Changed 17 years ago by jmroot (Joshua Root)

A daily tarball of the ports tree is now being generated, and in trunk you can use it to sync, or of course you can do it manually. See howto/PortTreeTarball and r35647.

comment:5 Changed 16 years ago by mamoll (Mark Moll)

jmpp's instructions would be a useful addition to the New Committters Guide: http://trac.macports.org/wiki/NewCommittersGuide

comment:6 Changed 16 years ago by wsiegrist@…

Resolution: fixed
Status: newclosed

I think this ticket has been satisfied on the sync side with two HOWTOs:

and the building from source instructions at:

and so I'm closing it.

comment:7 Changed 15 years ago by jmroot (Joshua Root)

Milestone: MacPorts FutureMacPorts 1.7.0

comment:8 Changed 11 years ago by rogerdpack@…

(as a followup, does anybody know if this was ever implemented -- selfupdate over non rsync?) Thanks

comment:9 in reply to:  8 Changed 11 years ago by larryv (Lawrence Velázquez)

No. Updating base itself still requires rsync.

Note: See TracTickets for help on using tickets.