Staging

October 3, 2013 by · Leave a Comment 

You may has notice that staging has hit the ports tree, staging is something really important, all packages system are using that feature for eons, sometime called DESTDIR sometime called FAKEDIR.

Staging is consistent in adding a new step while building packages: install everything into ${STAGEDIR}. Then we can directly create packages out of that directory without having to install into /. What the implementation does is:

With pkg_install (legacy package tools):

  • Create a package from the stage directory
  • Install that package.

With pkgng:

  • Create a package from that stage directory

OR

  • Install to / (pkgng can consider the stage directory as if it is a package)

What it means is, that it is the end of the bad plist, only things in plist are really installed, this is the end of the broken packages that break the system because they fail in the middle of make install as a package will only be installed once we are sure the build process properly pass.

It allows right now to build and create a package without the need to be root.
It gives us new targets:

  • make makeplist (to create the pkg-plist)
  • make check-orphans (to print what is in the stage directory but not in pkg-plist)

It reduces code duplication: in the end the installation is being done via a package installation meaning that PKG-MESSAGE is automatically printed, all pre/post installation scripts are executed.

It reduces patches: no need anymore to patch upstream Makefiles to avoid installing the DOCS just do not list them in pkg-plist or conditionnaly list them in the pkg-plist.

This also allows lots of new features to come:

  • Allow to create sub-packages
  • Allow to create debuginfo packages
  • Allow to do a lot of sanity check in the staging area to improve our QA

To convert your ports refer to: https://wiki.freebsd.org/ports/StageDir

Along with stage you have noticed that MAN* and MLINKS has gone, and now all the manpages should be added to the plist. BTW MANCOMPRESSED is also not necessary now.

There is 3 reason behind making it go and not being replaced:

  1. The initial goal of those macros was to be able to compress the right manpages and to handle the different hardlinks/symlinks between those pages. Because it was directly installed in / rather than using a stage directory, it was necessary to at a point list them. and to properly track the different links in MLINKS (which wasn’t done properly in most ports btw :)). With stage, we have a new compress-man which does it properly on its own without the need to get the list of the manpages, without the need of an explicit declaration of the links. This syntax to handle localized man pages was also terrific :) and if you have a port mixing manpages in “non regular” and “regular” localtion, it was totally messing
  2. Consistency, a port is basically: some metadata, a plist and some operations to perform. for metadata all metadata are in the Makefile, all operations are in the Makefile but plist can be a mix of pkg-plist and Makefile, this is inconsistent, it makes sometime hard to figure out why a file has been added to the plist etc. Also this makes us having tons of targets define to handle those extras entries and results in highly inefficient make(1) usage.
  3. Stage is also a first step to go to sub-packages, sub-packages will basically be: 1 port able to produce N packages, to be able to do this we will use multiple plist, having the files properly defined already in plist will help that. Having files defined in macros on Makefile will make it hard todetermine which one should go in which plist.

Last thing I would like to add about it: I don’t see the difference personnaly between listing N lines of manpages into Makefile MAN* macros where btw you have to manually define the categories where to put them and adding those N lines
directly into the plist where make makeplist and/or make check-orphans can help you getting the exact lines automatically?

Ports Slush is now in over

April 22, 2013 by · Leave a Comment 

Just to make it official, the ports slush is over.

Ports committers are now able to perform regular updates, business as usual, no need for portmgr@ approvals.

You can read more at http://lists.freebsd.org/pipermail/freebsd-ports-announce/2013-April/000058.html

Ports Slush is now in effect

April 16, 2013 by · Leave a Comment 

Just to make it official, the ports hard freeze has been lifted.

Ports committers are now able to perform regular updates, just no sweeping
commits without prior approval from portmgr. This period of slush will
continue until 8.4 is out the door.

Read more at http://lists.freebsd.org/pipermail/freebsd-ports-announce/2013-April/000056.html

FreeBSD Ports tree has been tagged with RELEASE_7_EOL

March 6, 2013 by · Leave a Comment 

The FreeBSD Ports Management Team wishes to remind users that February 28 was the end of support for the Ports Collection for both FreeBSD 7.4 RELEASE and the FreeBSD 7.x STABLE branch. Neither the infrastructure nor individual ports are guaranteed to work on these FreeBSD versions after that date. A tag has be created for users who cannot upgrade for some reason, at which time these users are advised to stop tracking the latest ports repository and use the RELEASE_7_EOL tag instead.

Read more at http://lists.freebsd.org/pipermail/freebsd-ports-announce/2013-March/000051.html

linimon steps down from portmgr

February 21, 2013 by · 1 Comment 

Mark Linimon, aka linimon@,  recently stepped down from his duties on the FreeBSD Ports Management Team.

Mark joined the team back in 2004, providing nine years of continuity to the Ports Infrastructure.  Among the many things Mark did, was maintaining and documenting the current portbuild system that the team uses for -exp runs and package building.  With his other bugbuster@ hat on, he played middle man contacting maintainers of BROKEN and DEPRECATED ports.

On behalf of the Ports Management team, we would like to thank Mark for his many years of service and dedication, his contributions will be greatly missed.

 

Thomas

on behalf of portmgr@

FreeBSD 9.1 ports freeze is officially over

December 9, 2012 by · Leave a Comment 

Just to make it officially official, the ports feature freeze has been lifted.

Ports committers are now entitled to perform sweeping commits. Keep in mind that -exp runs are always a good idea if you think there is a significant change to the ports tree.

And just remember, PLEASE TRY TO NOT BREAK THE INDEX!

Thomas
on behalf of portmgr@

decke@ joins portmgr@

October 19, 2012 by · Leave a Comment 

The FreeBSD Ports Management team is pleased to welcome Bernhard Froelich, aka decke@, to it’s ranks.

Bernhard was a long time ports contributor, and received his ports commit bit back in March 2010.

More recently, Bernhard was the one responsible for bringing us Redports.org shared tinderbox.

Please join me in welcoming decke@ to the team.

Thomas
on behalf of portmgr@

Ports Feature Freeze for 9.1

October 10, 2012 by · 2 Comments 

FreeBSD 9.1 RC2 has been pulicly announced, it is now time for the the Ports Feature Freeze.

Normal upgrade, new ports, and changes that do not affect other ports will be allowed without prior approval, but with the extra

Feature safe: yes

tag in the commit message. Any commit that is sweeping, that is, touches a large number of ports, infrastructural changes, commits to ports with unusually high number of dependencies, and any other commit that requires the rebuilding of many packages will not be allowed without prior explicit approval from portmgr@.

Check out http://www.freebsd.org/portmgr/implementation.html#sweeping_changes for what constiutes a sweeping change.
Thomas
on behalf of portmgr@

Change to the header in ports Makefiles, take two

September 17, 2012 by · Leave a Comment 

It was recently posted on, http://blogs.freebsdish.org/portmgr/2012/09/01/change-to-the-header-in-ports-makefiles/ that we would adopt a new header for the ports Makefiles. The initial discussion seemed to show enough support for the idea of completely stripping the header, leaving only the $FreeBSD$ tag. After the announcement was made, more people stated strong feelings that when and where possible attribution be maintained in the header.

A private discussion was held among ports committers, and while opinions were as varied as the individuals who shared them, it was decided to unify on a two line header.

# Created by: J.Q. Public <[email protected]>
# $FreeBSD$

The Whom line from the classic six line header becomes Created By.

Sometimes, as a result of a repocopy, or changed maintainership, the Created By and MAINTAINER is no longer in synchronisation. To avoid confusion, the first line can be removed, optionally leaving us with a one line header.

# $FreeBSD$

Removing the line of attribution is to be done only at the consent/request of the original contributor.

As before, we ask this header only be updated in conjunction with a regular update, as we do not want any unnecessary churn to the repo prior to the pending Ports Feature Freeze.

Thomas
on behalf of portmgr@

Change to the header in ports Makefiles

September 1, 2012 by · Leave a Comment 

An idea has been floating around for some time, and it was brought up again on the ports@ mailing list recently, please remove the extraneous header information from the Makefile, leaving only the $FreeBSD$ id on the first line.

It is an idea that is long overdue, so from now on, the other fives lines shall be removed.

We do request that this be done sparingly in the short term, as we do not want to cause any additional churn on the repo as we approach our upcoming Ports Feature Freeze, still tentatively scheduled for September 7.

So please proceed only on existing updates. Please do not do any sweeping commits until we have the ports tree stablised post 9.1 tagging. Also bear in mind that Redports/QAT queues a job for every change done to a Makefile, we do not want to overburden the QAT at this time. It is important to allow this service to run at peek efficiency at this time to ensure it’s full potential as we approach the upcoming Feature Freeze.

The new look of the Makefile has been document in the Porter’s Handbook.

The next item on the todo list is to update devel/newfile for those that do a port create.

Thomas
on behalf of portmgr@

« Previous PageNext Page »