Rubygem hosting (bsd.sites.mk)

Eric freebsdlists-ports at chillibear.com
Tue May 4 14:33:33 UTC 2010


Dear all,

At the risk of cross post flaming, I thought I would bring up the matter of
RubyGem ports on the main ports list having heard nothing back from my
initial enquiry on the ruby lists [1], but perhaps since it's really about
ports then this is the right place!

I've noticed that from time to time the general migration of gems from
rubyforge.org to gemcutter.org/rubygems.org [2] (and indeed GitHub[3]) has
been mentioned on the FreeBSD ruby and ports lists, but it would appear
nothing has been changed yet in the bsd.sites.mk file to accommodate this
migration (may have missed a pr in progress of course).  Since I find myself
writing quick gem ports every now and then I thought it would be worth
bringing the matter up for a quick discussion before sending in my suggested
patch as a PR.

I personally think the cleanest thing to do is add anther MASTER_SITE for
RubyGems.org.  Now it would be nice to add their download location directly,
but that does a 302 redirect to Amazon or CloudFiles for the actual
download, so I think we'll need to pop those locations into bsd.sites.mk
directly. Thus:

# See http://rubygems.org/pages/about
.if !defined(IGNORE_MASTER_SITE_RUBYGEMS)
MASTER_SITE_RUBYGEMS+= \
 http://production.s3.rubygems.org/gems/%SUBDIR%/ \
 http://production.cf.rubygems.org/gems/%SUBDIR%/
.endif

Since it will be pretty cool to be able to update many ports by just
s/RF/RG/ in many cases I think we should have an abbreviation for the
RubyGems site thus:

MASTER_SITES_ABBREVS= CPAN:PERL_CPAN \
  SF:SOURCEFORGE \
  SFJP:SOURCEFORGE_JP \
  RG:RUBYGEMS \
  RF:RUBYFORGE

Now one thing I'm not 100% sure on is the use of the '%SUBDIR%' in the
paths, in this case none of the gems will be located in subdirectories since
the gem hosting is flat.  It would appear that the "standard way of doing
things in the bsd.sites.mk is to specify a '%SUBDIR%' element, then if a
pattern is defined in the 'MASTER_SITES_SUBDIRS', that element is replaced.
Is that correct?  So for a RubyForge example, the pattern in
'MASTER_SITES_SUBDIRS' is 'RUBYFORGE:${PORTNAME:L}', which would be the name
of the port lowercased (I guess). So say for 'file-tail' that would make the
download location: 
http://files.rubyforge.vm.bytemark.co.uk/file-tail/file-tail-n.n.n.gem

So it occurs to me that we could either just not have a
'MASTER_SITES_SUBDIRS' entry for the RUBYGEMS site (easy) or we could have
one that was just the 'hardcoded' gems subdirectory, something like this:

  RUBYGEMS:gems \

Like the CENKES entry in the file.  We would then make the
'MASTER_SITE_RUBYGEMS' entries like this:
http://production.s3.rubygems.org/%SUBDIR%/
Not quite sure what the best FreeBSD ports protocol is here.  I personally
feel perhaps that makes it more complicated than it needs to be?


Finally it's a good opportunity to replace the dead mirror in the RubyForge
entry, since 'http://files.rubyforge.mmmultiworks.com' seems to have been
down for some time now.

# See http://rubyforge.org/credits/
.if !defined(IGNORE_MASTER_SITE_RUBYFORGE)
MASTER_SITE_RUBYFORGE+= \
 http://files.rubyforge.vm.bytemark.co.uk/%SUBDIR%/ \
 http://files.ruby.inoack.com/%SUBDIR%/
.endif

Any thoughts, comments, suggestions before I put a PR and associated diff
in?

Regards

Eric

---
[1] http://lists.freebsd.org/pipermail/freebsd-ruby/2010-April/000290.html
[2]
  http://lists.freebsd.org/pipermail/freebsd-ruby/2010-February/000250.html
  http://lists.freebsd.org/pipermail/freebsd-ports/2009-December/058516.html
[3] http://lists.freebsd.org/pipermail/freebsd-ruby/2010-January/000220.html

---
Diff of proposed changes for those interested:

--- bsd.sites.mk.orig    2010-04-06 02:53:13.000000000 +0100
+++ bsd.sites.mk    2010-05-04 14:54:22.000000000 +0100
@@ -1141,8 +1141,15 @@
 # See http://rubyforge.org/credits/
 .if !defined(IGNORE_MASTER_SITE_RUBYFORGE)
 MASTER_SITE_RUBYFORGE+= \
-    http://files.rubyforge.mmmultiworks.com/%SUBDIR%/ \
-    http://files.rubyforge.vm.bytemark.co.uk/%SUBDIR%/
+    http://files.rubyforge.vm.bytemark.co.uk/%SUBDIR%/ \
+    http://files.ruby.inoack.com/%SUBDIR%/
+.endif
+
+# See http://rubygems.org/pages/about
+.if !defined(IGNORE_MASTER_SITE_RUBYGEMS)
+MASTER_SITE_RUBYGEMS+= \
+    http://production.s3.rubygems.org/gems/%SUBDIR%/ \
+    http://production.cf.rubygems.org/gems/%SUBDIR%/
 .endif
 
 .if !defined(IGNORE_MASTER_SITE_SAMBA)
@@ -1493,6 +1500,7 @@
 MASTER_SITES_ABBREVS=    CPAN:PERL_CPAN \
             SF:SOURCEFORGE \
             SFJP:SOURCEFORGE_JP \
+            RG:RUBYGEMS \
             RF:RUBYFORGE
 MASTER_SITES_SUBDIRS=    \
             APACHE_JAKARTA:${PORTNAME:S,-,/,}/source \




More information about the freebsd-ports mailing list