Question

I am trying to download the source code for wget in Mac.

I managed to get the source code of wget in Ubuntu by

apt-get source wget

However, I have not managed to download source codes in Mac's terminal. I did not find the same utility in MacPorts.

Was it helpful?

Solution

MacPorts is a source-based package manager. That means that each time you install a package via MacPorts, it downloads the source, potentially patches it, configures it, builds it, installs it to a temporary location (so it can track which files the port needs), makes an archive of it, then installs that archive into the MacPorts root, which is usually /opt/local.

If you want to look at or edit the source before building it, you can execute a subset of the steps necessary to download and install it. port extract <name> will download and extract the source for the port, without actually building or installing it. You can then find the extracted source with port dir <portname>:

$ sudo port -v extract zlib
Password:
--->  Fetching zlib
--->  Verifying checksum(s) for zlib
--->  Checksumming zlib-1.2.3.tar.bz2
--->  Extracting zlib
--->  Extracting zlib-1.2.3.tar.bz2
$ ls $(port dir zlib)
Portfile    files       work
$ ls $(port dir zlib)/work
zlib-1.2.3
$ ls $(port dir zlib)/work/zlib-1.2.3
ChangeLog   as400       examples    inftrees.h  uncompr.c
FAQ     compress.c  gzio.c      make_vms.com    win32
INDEX       configure   infback.c   minigzip.c  zconf.h
Makefile    contrib     inffast.c   msdos       zconf.in.h
Makefile.in crc32.c     inffast.h   old     zlib.3
README      crc32.h     inffixed.h  projects    zlib.h
adler32.c   deflate.c   inflate.c   qnx     zutil.c
algorithm.txt   deflate.h   inflate.h   trees.c     zutil.h
amiga       example.c   inftrees.c  trees.h

See the MacPorts guide for more information on developing ports, and also man port.

OTHER TIPS

Most open source projects provide a compressed archive of their source code, or a readable version control repository. For instance, the source code for wget is available at http://ftp.gnu.org/gnu/wget/. All you need to do is decide which version you want to download and enter in the terminal window a command like

ftp http://ftp.gnu.org/gnu/wget/wget-1.10.2.tar.gz

You can then unpack the source code with a command like

tar xvzf wget-1.10.2.tar.gz

If the code is in a version control repository, then the project will also list the command you'll need to download the code. For instance, cvs2svn gives you the command

svn co --username=guest http://cvs2svn.tigris.org/svn/cvs2svn/trunk cvs2svn-trunk

There may be Mac-specific methods, but the beauty of what I described is that it works for any Unix-like environment.

apt-get is a program for automatically downloading and installing software packages and their dependencies; it is only available on some Linux-based platforms like Debian and Ubuntu. Mac OS X has two similar utilities: Fink and MacPorts. Both serve the same purpose as apt-get. I personally prefer MacPorts because I think it has a nicer UI, but both pieces of software work more or less the same.

AFAIK, MacPorts doesn't have a similar function to apt-get's source.

However, the source URL is in the Portfiles. You can view the portfile for a port by typing

cat `port file port_name`

in the terminal, for example:

cat `port file wget`

Or you can just install the port and find the source in /opt/local/var/macports/distfiles.

You might even be able to use the install command to just download (and not build or install) the port.

If you want an apt interface onto open source projects, look at Fink, a dpkg system for Mac OS X with various open source packages.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top