1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Adopt an orphaned port project

Discussion in 'Installation and Maintenance of Ports or Packages' started by lme@, Dec 10, 2012.

  1. lme@

    lme@ Administrator Staff Member Administrator Moderator Developer

    Messages:
    622
    Likes Received:
    9
    Since the ports tree is now open again, let's start the "Adopt an orphaned port" project.

    What is it?

    According to http://freshports.org/ we currently have 23,940 ports in our tree, that's really great! But: There are 4,751 unmaintained ports (approx. 20%), that need your love.

    What can I do?

    Adopt one or more ports!

    You think it's a lot of work? That's not necessarily the case, the ports are already there and just need someone to track the latest upstream versions and someone who keeps the port in a good shape.

    How do I know which ports are unmaintained?

    That's pretty easy: If you want a list of all unmaintained ports, run
    # nawk -F"|" '$6 == "ports@FreeBSD.org" {print $2}' /usr/ports/INDEX-`uname -r | cut -d'.' -f1`

    If you want to see which of your installed ports are unmaintained run
    • for PKGNG:
      # pkg query -e "%m == 'ports@FreeBSD.org'" %o
    • for pkg_*:
      Code:
      #!/bin/sh
      
      INDEX="/usr/ports/INDEX-$(uname -r | cut -d'.' -f1)"
      MAINTAINER="ports@FreeBSD.org"
      
      grep -h ORIGIN /var/db/pkg/*/+CONTENTS | cut -d: -f2 |
        nawk -v INDEX="$INDEX"  -v MAINTAINER="$MAINTAINER" \
          '{ installed_ports[$0] = 1 }
          END {
          	FS="|"
          	while (getline < INDEX) {
          		if ($6 == MAINTAINER) {
          	   		sub(/\/usr\/ports\//, "", $2)
          			unmaintained_ports[$2] = 1 
          		};
          	}
          		for (port in installed_ports) {
          			if (unmaintained_ports[port]) {
          				print port
          			}
          	}
          }' | sort
      

    What can I do then?

    • Pick a port.
    • Take a look at the port's Makefile and pkg-descr.
      • See if a new version is available upstream.
      • Check if the WWW line in pkg-descr still points to a valid site.
      • Check for broken distfile mirrors, take a look at http://people.freebsd.org/~ehaupt/distilator/ports@FreeBSD.org-bad.html.
      • Find other mirrors, or mirror the distfiles yourself.
      • Remove the dead mirrors from the port's Makefile.
      • Try to update the port to the new version.
      • Add yourself as MAINTAINER in the Makefile.
    • If the updated port works, create a patchfile and send a problem report (PR) with send-pr(1) or via the web interface http://www.freebsd.org/send-pr.html.
    All you need then is some patience until some committer grabs the PR and eventually commits it or asks you to re-work the patch, if there are some issues left.

    I'd really like to do that, but how do I actually do it?

    There's very good documentation for porters, the Porter's Handbook: http://www.freebsd.org/doc/en/books/porters-handbook/. Don't worry. It's called a book, but it's not a very thick book. Even so it explains porting very good. While it's recommended to read the whole book you can also pick the chapters first that you need to update the port. If you still have problems or questions then, there are many helpful people at the ports@FreeBSD.org mailing list.

    What benefits do I have?

    Actually there a several benefits:
    • You give something back to the community. That's the idea of open source.
    • You earn experience with Makefiles, diff(1), patch(1) and other useful tools.
    • You and everyone benefits from updated ports.
    • Your name gets added to the list of FreeBSD Contributors: http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributors/index.html.
    • If you create enough PRs and maintain a bunch of ports, it's quite possible that you get punished with a ports commit bit! \o/
     
  2. fonz

    fonz Moderator Staff Member Moderator

    Messages:
    2,444
    Likes Received:
    7
    Good initiative. I'm certainly going to have a look.

    Fonz
     
  3. gkontos

    gkontos Member

    Messages:
    1,385
    Likes Received:
    1
    Excellent me too wherever I can help.
     
  4. vand777

    vand777 New Member

    Messages:
    292
    Likes Received:
    0
    Will have a look as well!
     
  5. cpm

    cpm Member

    Messages:
    1,377
    Likes Received:
    2
    @lme@

    Thanks for your announcement.

    Good sticky!
     
    Last edited by a moderator: Oct 16, 2014
  6. jackp

    jackp New Member

    Messages:
    50
    Likes Received:
    0
    I've had my eye on a couple of neglected ports -- when things at work wind down for the holidays, I'll have a go at updating them.
     
  7. gnumonk

    gnumonk New Member

    Messages:
    24
    Likes Received:
    0
    Thanks for sharing this info, I have seen some of them which I used daily using git, but I see those are poiting to old link or dead link. I will probably take those.

    But I have a question, since most of the projects were moved to git, how to versioning them, I mean what will be on PORTVERSION?

    --
    gnumonk
     
  8. TheDreamer

    TheDreamer New Member

    Messages:
    37
    Likes Received:
    0
    What if the port has a MAINTAINER, but they seem to have vanished?

    There's a port, which requires frequent updates. But hadn't been updated in years. The last PR where the maintainer responded was in August 2010, where he submitted a patch that updated it from 0.57 to 0.59.

    None of the ports of this nature worked when I tried them, but I found that this port's upstream had an active community maintaining it. Though there appears to be a gap in activity from November 2010 to August 2012. So, I found the latest revision and got it working. I submitted a PR to update it to version 2.7, where I with with provide the distfiles since the current versions involve reading a discussion thread and checkout the specified CVS revision on Sourceforge. After about six weeks it was committed with maintainer-timeout.

    Later the port stopped working, a 3.0 .tgz had been released during the time, but I needed to actually get revision 2.29 from CVS (v3.0.3) for things to work again. So, I submitted another PR, this one has been waiting for maintainer feedback for over two months now.

    Meanwhile, I've had to update again. But, how should I submit or why? Feel I might also be the only person on FreeBSD using this port.

    The Dreamer.
     
  9. kpa

    kpa Member

    Messages:
    4,027
    Likes Received:
    13
    Which port is it? Ask on the freebsd-ports mailing list and request that the maintainer of the port is reset to ports@freebsd.org which means that the port does not have a maintainer. Or if you feel that you could do the maintainer's work yourself volunteer as the maintainer ;)
     
  10. wblock@

    wblock@ Administrator Staff Member Administrator Moderator Developer

    Messages:
    11,257
    Likes Received:
    25
  11. kpa

    kpa Member

    Messages:
    4,027
    Likes Received:
    13
  12. trh411

    trh411 New Member

    Messages:
    866
    Likes Received:
    0
    Maybe it's just me, but I would like to know that a reasonable number of people are using (or at least have installed) a port before committing to maintain it. Priority should be given to maintain those ports most frequently installed/used, but are orphaned WRT being maintained, no?

    Is this information available somewhere?
     
  13. lme@

    lme@ Administrator Staff Member Administrator Moderator Developer

    Messages:
    622
    Likes Received:
    9
  14. crashcoredump2

    crashcoredump2 New Member

    Messages:
    3
    Likes Received:
    0
    Is this still a thing?
     
  15. fonz

    fonz Moderator Staff Member Moderator

    Messages:
    2,444
    Likes Received:
    7
    The being mentioned as a contributor thing never happened, but otherwise:
    Code:
    # find /usr/ports -name Makefile -exec grep MAINTAINER {} \; | grep -i ports@FreeBSD.org | wc -l
      4279
    
    There are still over 4,000 unmaintained ports so if you feel like "adopting" one (or a few) of them, then you are by all means welcome.
     
  16. lme@

    lme@ Administrator Staff Member Administrator Moderator Developer

    Messages:
    622
    Likes Received:
    9
    I'll happily add everyone to the contributor list who maintains a port. :)