Fink Binary Package Repository

People

Goals

I want to eliminate the need for building packages on our (mainly mine) slower macs with the fink command. It's much faster to install binary packages.

I would like one of our new G5's, Zim, to do the heavy building. I would like the other G5, Gir, to be the primary testbed for the repository.

(No, we can't make Fink use distcc yet. Read why.)

Security Concerns

The UpdateListings script is run as root on Zim from my home directory (/Users/ian). Anybody with Subversion access can update this script, which will deploy if I ever svn update. Also, anybody with a Crew LDAP account can log into the Zim/Gir.

Tasks

  1. Ensure that /sw/fink/dists on Zim is set up like a proper Debian repository
    1. Grok Debian repositories
    2. Write script to generate Packages.gz and/or Packages
      • done -- see the UpdateListings script (via svn)
      • Make sure these files in all dists directories are at least touched, or build at least one package from every branch so there's a .deb
      • TODO -- remote UpdateListings, just use fink scanpackages
    3. Ensure that Release files are in place
      • done -- see unstable/main. Gir successfully grabs the listings with apt-get update.
    4. Add UpdateListings to root's crontab
      • done -- currently running hourly for testing
  2. Ensure Fink on Zim is ready to build packages
    • done -- make sure to install X11User.pkg, X11SDK.pkg and gcc2.95.2, among other obvious packages
  3. Get a client to work
    1. Tell Gir to use Zim as a package source
      • done
    2. apt-get install packages on Zim and ensure that they're the verions being offered off of Zim (not local)
      • done:
        1. told gir to apt-get install bcrypt -- died, "Couldn't find pacakge acoc"
        2. told zim to fink -y build bcrypt
        3. told zim to UpdateListings
        4. told gir to apt-get update and apt-get install bcrypt -- success!
  4. Create a system to:
    1. Ensure that the newest versions of packages are always created
    2. Allow us to specify what packages need to be built

See Also

Resources