# A random question about ports



## kpedersen (Aug 4, 2010)

Hello,

I have been trying to find out the answer to this for a while, purely for interest.

If I had a machine running FreeBSD 6.2 and was to use the packages from STABLE, what ports collection could I use to build more version matching packages?

The ports from the 6.2 DVD are for the RELEASE versions so would cause version problems.

Basically is there a snapshot of the ports collection for FreeBSD 6.2 STABLE?

Any info would be greatly received


----------



## plamaiziere (Aug 4, 2010)

kpedersen said:
			
		

> Hello,
> 
> Basically is there a snapshot of the ports collection for FreeBSD 6.2 STABLE?
> 
> Any info would be greatly received



You can "csup" the ports tree by date (option date in csup, I don't remember for cvsup). I've not tested this.


----------



## kpedersen (Aug 4, 2010)

Ah yes that would be an idea.

Any advice on how to find the exact date/time for the csup?


----------



## wblock@ (Aug 5, 2010)

kpedersen said:
			
		

> If I had a machine running FreeBSD 6.2 and was to use the packages from STABLE, what ports collection could I use to build more version matching packages?



The ports tree isn't tied to the version of the OS.  FreeBSD-6, -7, -8, -9... they all use the same ports tree.  ("The ports tree doesn't branch.")  Any ports you compile on that system will run on that system (provided all their dependencies are in order).



> The ports from the 6.2 DVD are for the RELEASE versions so would cause version problems.



No.  The ports tree and packages on that DVD were just the most recent at the time it came out.  They weren't special for FreeBSD 6.2.  (Although because they were compiled on 6.2, the binaries expect the 6-stable ABI.  That's actually what -stable means: the ABI is stable, unchanging.  Programs compiled for that major version of the OS (6) will continue to work on later minor versions (6.2) because the ABI hasn't changed.)



> Basically is there a snapshot of the ports collection for FreeBSD 6.2 STABLE?



Well... no.  I think you're asking "how do I get newer ports for 6.2 stable?"  And the answer is "the same as with other versions of FreeBSD: update the ports tree and build the new versions."  Or find newer packages, if someone has built them (probably not for FreeBSD 6 any more).


----------



## jgh@ (Aug 5, 2010)

wblock said:
			
		

> The ports tree isn't tied to the version of the OS.  FreeBSD-6, -7, -8, -9... they all use the same ports tree.  ("The ports tree doesn't branch.")  Any ports you compile on that system will run on that system (provided all their dependencies are in order).
> 
> 
> 
> ...



The ports tree does get tagged:
http://lists.freebsd.org/pipermail/freebsd-ports/2010-March/059820.html

And from:
http://www.freebsd.org/doc/handbook/cvs-tags.html

"A.7.2 Release Tags
These tags refer to a specific point in time when a particular version of FreeBSD was released. The release engineering process is documented in more detail by the Release Engineering Information and Release Process documents. The src tree uses tag names that start with RELENG_ tags. The ports and doc trees use tags whose names begin with RELEASE tags. Finally, the www tree is not tagged with any special name for releases."


----------



## SirDice (Aug 5, 2010)

jgh said:
			
		

> The ports tree does get tagged:
> http://lists.freebsd.org/pipermail/freebsd-ports/2010-March/059820.html


But never updated. Which means it's 'frozen in time'. After the RELEASE comes out there will be NO changes. The ports tree will have the same ports/packages as on the release CD.

To get the latest ports you must update your ports tree. And you end up with the same ports tree whatever version or release you're running.


----------



## DutchDaemon (Aug 5, 2010)

The only discerning factor may be the INDEX-{major_version} files in /usr/ports, and directives in Makefiles which exclude the current version of a port from older OS versions.


----------



## kpedersen (Aug 5, 2010)

Hmm,

I understand that the ports are not linked to the version of FreeBSD but if I were to install Xorg packages from 6.2 STABLE folder on the ftp site I would then need the ports collection that exactly matches the packages found in that directory, otherwise it would complain left, right and center about version conflicts. So I do need to find the ports collection that matches the 6.2 STABLE packages. Otherwise I would need to compile Xorg from ports whereas I would prefer to just use packages for "big stuff".

Looking through the ports Makefiles, nothing seems to suggest a version I can use to csup a compatible ports collection.

So as far as I can see, people using old versions of FreeBSD have two choices, use the really old RELEASE packages (because the matching ports snapshot is easily found on the CD/DVD) or entirely use a ports collection.
The packages in 6.2-STABLE for example are useless because if you ever need something that hasnt been made into a package yet (e.g openoffice) you need to completely wipe your installed packages `pkg_delete -a` and use one of the above 2 choices so that versions all match.

Is this correct?

This is not a complaint because I am using FreeBSD 8.0/1 for all my machines, but I am just interested in how users tied to older versions deal with it.

Cheers


----------



## gilinko (Aug 5, 2010)

First things first. There is nothing called 6.2-STABLE. You are mixing apples and oranges here. 6.2-RELEASE exists as do 6.3-RELEASE etc. Any minor version number is always a RELEASE version(with one exception, I know). Then there are the 7-STABLE and 8-STABLE both of those branches. Only 9-CURRENT exists as where new features are developed and added.

The ports tree for a -RELEASE is for that particular release is found on the DVD if you need it, and the packages that was build for the -RELEASE is also there. If you want to use newer packages, you could use the -STABLE branch builds for your version(7-STABLE, 8-STABLE). These are not as new as the ports tree, so the latest and greatest will not be there. Then you can use the ports tree for compiling from source.

So you options are:
1: Use packages from the -RELEASE and these will never be updated anywhere by anyone.
2: Use packages from the -STABLE path of your version (6,7 or 8), and these will be updated regularly but it also might take 1-2 months. Also they might skip a version if something gets updated often.
3: Use ports and compile from source.

When you are using packages, there is no need for the ports tree.


----------



## wblock@ (Aug 5, 2010)

kpedersen said:
			
		

> Hmm,
> 
> I understand that the ports are not linked to the version of FreeBSD but if I were to install Xorg packages from 6.2 STABLE folder on the ftp site I would then need the ports collection that exactly matches the packages found in that directory, otherwise it would complain left, right and center about version conflicts.   So I do need to find the ports collection that matches the 6.2 STABLE packages. Otherwise I would need to compile Xorg from ports whereas I would prefer to just use packages for "big stuff".



Less confusing (maybe) to put it another way: "If I installed packages three years ago, but now want to install some things from ports, how do I get ports that match those old packages?"



> So as far as I can see, people using old versions of FreeBSD have two choices, use the really old RELEASE packages (because the matching ports snapshot is easily found on the CD/DVD) or entirely use a ports collection.  The packages in 6.2-STABLE for example are useless because if you ever need something that hasnt been made into a package yet (e.g openoffice) you need to completely wipe your installed packages `pkg_delete -a` and use one of the above 2 choices so that versions all match.



Well, yes.  The farther apart your port updates, the bigger and more involved they become, and there's a point where "pkg_delete -a" is quicker than piecemeal.



> This is not a complaint because I am using FreeBSD 8.0/1 for all my machines, but I am just interested in how users tied to older versions deal with it.



It's usually not too bad because a computer that's still running a very old version of FreeBSD is generally a server, and has a lot less ports installed than a desktop system.


----------



## kpedersen (Aug 5, 2010)

wblock said:
			
		

> Less confusing (maybe) to put it another way: "If I installed packages three years ago, but now want to install some things from ports, how do I get ports that match those old packages?"



Yes... Well put, that is exactly what I meant 

Do you know of a way to do this?

glinko:

If I went with your option 2 and I used the stable packages. If I then realized that OpenOffice is for some reason not in the stable packages folder even though it has been in the ports collection for ages what would I do? I need a matching ports snapshot which will play nicely with all my currently installed stable packages. I am just wondering where I would find such a matching ports snapshot.

I believe that the stable package folders on the ftp should ideally contain a ports.tar.gz file containing a snapshot of ports which match the stable packages.


----------



## gilinko (Aug 5, 2010)

kpedersen said:
			
		

> Yes... Well put, that is exactly what I meant
> 
> Do you know of a way to do this?
> 
> ...



That's the nature of the packages connected to -STABLE, it's mainly there for testing the -STABLE core, not as an up to date package repository. However it is also useful if you want to have relatively new packages. But they don't have a "frozen" snapshot of it, it's just built on the fly by pointyhat to see if any change in the core OS breaks the compilation of ports. So in case a package is missing, then you are SOL if you don't build it yourself. But don't mix installed ports and packages. 

Never forget that the -STABLE (and definitely -CURRENT) is a _development branch_ and don't use snapshots or commonly defined cvs/svn tags. The only thing that is frozen and recorded in any way are the -RELEASE versions.


----------



## wblock@ (Aug 5, 2010)

kpedersen said:
			
		

> wblock said:
> 
> 
> 
> ...



Finding the date is the tricky part.  I'd think you could get it from /var/db/ports/ somewhere, but haven't tried.  Then it's just csup.


----------



## kpedersen (Aug 6, 2010)

Ok,

Thanks guys, that is interesting.

Next time I find the need to run FreeBSD 6.x on my machine, I will make sure to experiment


----------

