# What is the last ports update to 10.4?



## byrnejb (May 20, 2020)

I am trying to get a SAMBA43 AD-DC moved to a more recent version.  4.3 was the last vesion of samba_server that would provision on FreeBSD before 4.10.15 and so we had to keep it running.  Samba-4.3 was last available on FreeBSD-10.3, which we have kept running in a BHyve vm specifically for that purpose.  However, as detailed elsewhere, I am unable to replicate the windows acls on the current version of FreeBSD (12.1.p4/5).  Since FreeBSD  10.3 and 10.4 are long past their EOLs in order to get the packages I need for new vms I require to build these using Poudriere.  Which is the context for my question.

Which branch contains the last set of ports for 10.4?                           



releng/10.310.3-RELEASEExtendedApril 4, 2016April 30, 2018releng/10.410.4-RELEASENormalOctober 3, 2017October 31, 2018


https://svn.freebsd.org/ports/branches/2017Q2 appears to be the last set for 10.3 but it is not clear to me whether 2018Q3 is the last for 10.4.

I also note that the CHANGES document for 2017Q3 does not mention that samba42 and samba43 were both removed between 10.3 and 10.4.  Is it the practice that ports are deleted between minor revisions without the fact being documented?


----------



## Phishfry (May 20, 2020)

I like to look at the pkg repositories for that info:


			Index of /FreeBSD:10:amd64/
		

So it looks like the last package set was from Nov 2018.
You could install 10.4 packages on newer FreeBSD versions by using pkg_add(1) from the above repositories txz files..
`pkg` will prompt you for needed dependencies. So mutiple downloads might be needed.
You might need to `pkg lock` the older packages as well to prevent them from being upgraded.


----------



## MarcoB (May 20, 2020)

Freshports

The port expired on 7-3-2017


----------



## SirDice (May 20, 2020)

byrnejb said:


> Which branch contains the last set of ports for 10.4?


All  versions use the same ports tree and thus the same quarterly branches. There are NO version specific branches.  



Phishfry said:


> You could install 10.4 packages on newer FreeBSD versions by using pkg_add(1) from the above repositories txz files..


FreeBSD 10.0 and onward used PKGNG exclusively.


----------



## Phishfry (May 20, 2020)

Sorry I posted the wrong man page, I posted an underscore instead of a dash. This is the correct pkgng page.
pkg-add(8)


----------



## byrnejb (May 20, 2020)

SirDice said:


> All  versions use the same ports tree and thus the same quarterly branches. There are NO version specific branches.



Technically, you may be correct.  Practically you are wrong.  If one sets the update repo to `url: "pkg+http://pkg.FreeBSD.org/FreeBSD:10:amd64/latest"` on a vm running 10.3 then there are no samba43 packages available at all.  Notwithstanding that samba-4.3.13_2 is the last version available for FreeBSD-10.3. If one instead sets the repo to RELEASE-3 then the samba43 package available is version 4.3.3.  The samba43 port was removed between 10.3 and 10.4 and this prevents one form getting the last updated version of that release.  So the idea that all versions of FreeBSD use the same port tree comes with the considerable caveat that ports that have been dropped are no longer present for any version.

I invite you to initialise a ports tree via portsnap and see if you can find samba43.

I have downloaded the current port tree and I cannot find a port for samba43 in it.  I suppose that if one updated their local ports tree continually from 10.3 to now then ones local tree would contain the missing packages, but that is not the case here.

I installed samba43.3.13_2 using pkg add  but when I run samba_server I get this message: `Performing sanity check on Samba configuration: FAILED`.  This probably means that I have neglected to run samba-tool to initialise it properly. In any case it does not appear to matter.  I cannot replicate between two FreeBSD-10.3 UFS systems running samba either.   So the entire approach is futile.


----------



## SirDice (May 20, 2020)

You are so hung up on the version of the OS you can't see what's right in front of you. The ports tree has NOTHING to do with the FreeBSD version. There is no relation. Stop looking for it.



byrnejb said:


> So the idea that all versions of FreeBSD use the same port tree comes with the considerable caveat that ports that have been dropped are no longer present for any version.


Yes, that's true. But you fail to see this also means the entire _history_ of that ports tree is available on every version of FreeBSD. Packages are nothing more than snapshots from the ports tree, snapshots taken at intervals during the lifetime of that ports tree. 



byrnejb said:


> I invite you to initialise a ports tree via portsnap and see if you can find samba43.


portsnap(8) is a great tool but it's the wrong tool for this job. 



byrnejb said:


> I have downloaded the current port tree and I cannot find a port for samba43 in it.  I suppose that if one updated their local ports tree continually from 10.3 to now then ones local tree would contain the missing packages, but that is not the case here.


Learn about revision control systems like subversion and git. Learn how revisions work. Learn how to restore/revert to certain revisions.


```
%  cd /tmp
% svn co https://svn.freebsd.org/ports/head  myportstree
<snip>
% cd myportstree
% ls net/samba43
ls: net/samba43: No such file or directory
%  svn update -r 441680 net/samba43
Updating 'net/samba43':
A    net/samba43
A    net/samba43/files
A    net/samba43/files/man
A    net/samba43/files/patch-source3__wscript
A    net/samba43/files/patch-third_party__waf__wafadmin__Logs.py
A    net/samba43/files/samba_server.in
A    net/samba43/files/patch-docs-xml__wscript_build
A    net/samba43/files/patch-lib__crypto__wscript_configure
A    net/samba43/files/patch-nsswitch__wins_freebsd.c
A    net/samba43/files/patch-source3__smbd__quotas.c
A    net/samba43/files/patch-source3__utils__net_time.c
A    net/samba43/files/patch-source4__lib__http__http.c
A    net/samba43/files/patch-wscript_build
A    net/samba43/Makefile
A    net/samba43/pkg-plist
A    net/samba43/distinfo
A    net/samba43/files/patch-source3__smbd__close.c
A    net/samba43/files/patch-source3__smbd__open.c
A    net/samba43/files/patch-source3__wscript_build
A    net/samba43/files/patch-source3__client__dnsbrowse.c
A    net/samba43/files/pkg-message.in
A    net/samba43/files/README.FreeBSD.in
A    net/samba43/files/man/gentest.1
A    net/samba43/files/man/locktest.1
A    net/samba43/files/man/masktest.1
A    net/samba43/files/man/ndrdump.1
A    net/samba43/files/man/nmblookup4.1
A    net/samba43/files/man/ntlm_auth4.1
A    net/samba43/files/man/oLschema2ldif.1
A    net/samba43/files/man/regdiff.1
A    net/samba43/files/man/regpatch.1
A    net/samba43/files/man/regshell.1
A    net/samba43/files/man/regtree.1
A    net/samba43/files/man/smbtorture.1
A    net/samba43/files/patch-buildtools__scripts__abi_gen.sh
A    net/samba43/files/patch-buildtools__wafsamba__samba_install.py
A    net/samba43/files/patch-buildtools__wafsamba__samba_pidl.py
A    net/samba43/files/patch-buildtools__wafsamba__wafsamba.py
A    net/samba43/files/patch-dynconfig__wscript
A    net/samba43/files/patch-lib_replace_replace.c
A    net/samba43/files/patch-nsswitch__wscript_build
A    net/samba43/files/patch-source3__utils__net.c
A    net/samba43/files/patch-source4__dns_server__dns_crypto.c
A    net/samba43/files/patch-wscript
A    net/samba43/pkg-descr
Updated to revision 441680.
% ls net/samba43
Makefile        distinfo        files           pkg-descr       pkg-plist
```

How did I get that 441680 revision number? Finding the right revision is indeed a little tricky. But Freshports allows you to search for deleted ports, that's super helpful. Then  you can easily look at the last couple of commits for that port and get a good revision number. Another issue you're going to run into is MOVED (deleted ports are mentioned in it and poudriere checks this). Your next issue is going to be the numerous dependencies. You may need to revert more ports in order to get Samba to build at all. Instead of just a single port, you could also checkout the entire ports tree at that revision. It really depends on what you plan to do with it.


----------



## byrnejb (May 21, 2020)

The problem I have has to do with the deprecation of nt style acls in versions of samba higher than 4.3.  I wish to test  the transfer of nt style acls from a DC running on a 10.3 vm.  This vm was not updated to 10.4 or later, no doubt because samba44 and later simply would not work and samba43 disappeared from 10.4, but the details are lost in time and a failing memory.

I would like to use exactly the same version of samba on the test vm also running FreeBSD-10.3 and samba43 to determine if `rsync` can actually replicate the original DC to an identical system and samba recognize the replica.  However, I cannot install that version of samba from the archived packages for 10.3 due to a dependency failure. I can get an earlier version which might work, but it does not.  Likewise I cannot simply copy the samba txz file from the pkg cache on the DC because it has a dependency on another package which obviouly was updated on the DC before 10.3 was EOLed.  And that package has a dependency, and so on.

I set up Poudriere to build  `rsync` for 10.3 as `rsync` was not installed when 10.3 was current.  That was to allow replication to Samab410 running on 12.1p5.  However, replication via`rsync` did not prove successful.  Whether that is due to the difference in the way acls are handled in 4.3 and 4.11 on FreeBSD I cannot say.

I am not using `portsnap` for any of this.  I am using `svn`.  My question was in relation to where in the ports tree I should look.  Since there is an `svn`  branch specifically for FreeBSD-10 that seemed a good place to start.

I am building the last Samba43 available in a 10.3 Poudriere jail.  If I use the current ports tree (HEAD) then the build of samba43 is switched by Poudiere to a different  version, 4.6 if I remember but it might be something more recent.  My solution to that problem was to bring down the ports tree as it existed at the time the last version of samba43 was built and use that.  Which I did, using `svn` and the `-r'{yyyy-mm-dd}'` form;  and which tree I added to Poudriere's available ports.  Bringing down just samba43 is pointless as the thing requires about 150 other packages to build and I do not think that crashing into and resolving each missing dependency one at a time is sensible.

This has worked for me up to the point that `trousers` is compiled, which fails and prevents `gnutils` and `samba43` from being attempted.   `Trousers` is giving me an error which, on its face makes no sense to me, but I am sure that eventually it will be made clear.

None of this strikes me as being farfetched or blind.  Tedious and possibly futile, yes, blind, no.  One cannot build software if the source is not available, and the source for samba43 can only be had from HEAD if one knows precisely where to look and obtaining samba43 by itself will not permit the package to be built.  Effectively the entire tree up to that point is required or at least so much of it that the effort to restrict what is downloaded to only those ports required is not worth it.   Given what I am attempting to do I cannot see any other way to proceed.

Your comment respecting my understanding of `git` and `svn` are unworthy of you.


----------



## shkhln (May 21, 2020)

byrnejb said:


> Since there is an `svn`  branch specifically for FreeBSD-10



Which one?


----------



## zirias@ (May 21, 2020)

Hmm, this feels stupid as it's just repeating what SirDice said *twice*, but no, there isn't (and never was) a branch of ports specifically for FreeBSD 10. You're mixing up the base system and ports, they are two largely independent¹ repositories. FreeBSD 10 was a branch in base -- it doesn't have *any* meaning in ports.

¹] there's a relationship of ports to supported versions of FreeBSD, as any port at a given time must build successfully on any supported version of FreeBSD, plus -CURRENT. So, a recent ports tree probably contains quite some ports that won't build on FreeBSD 10 any more, as this version is EOL.


----------



## byrnejb (May 22, 2020)

shkhln said:


> Which one?


I miswrote.  I used `https://github.com/freebsd/freebsd/tree/releng/10.3` to discover the information that I needed.  To me, that is a branch.  I am not disputing that the current tree in`svn` is what is claimed.  Only that my needs are not satisfied by it.   As far as I can see, if there is a branch in git for 10.3 then, notwithstanding the serious limitations of subversion, conceptually that branch has to exist in the ports tree, however it is refered to and whatever the convention with respect to referencing it may be.


----------



## zirias@ (May 22, 2020)

byrnejb said:


> To me, that is a branch.


Yes. It is a branch of *the base system*, not a branch of ports. Is it really *that* though to understand? There are no release branches in ports, there never were any and there never will be -- there's just "head" and branches for the quarterly snapshots.


----------



## byrnejb (May 22, 2020)

What I probably should have done is clone  `https://github.com/freebsd/freebsd/tree/releng/10.3` and imported that into Poudriere.  However, I was unfamiliar with the tools that I was using and failed to map the the examples that I was reading, which invariantly used`svn`, to yheir git equivientcies.  As I have not used svn in more than 14 years I am no longer conversant with it.


----------



## zirias@ (May 22, 2020)

I give up.


----------



## byrnejb (May 22, 2020)

Zirias said:


> Yes. It is a branch of *the base system*, not a branch of ports. Is it really *that* though to understand? There are no release branches in ports, there never were any and there never will be -- there's just "head" and branches for the quarterly snapshots.



Thank you, that is indeed the part that I did not get.  I regret my confusion on the matter.


----------



## zirias@ (May 22, 2020)

Ok, then I assume you wrote the following post before reading this. So now, if you really need to keep this EOL system alive and install outdated ports on it, look above for some clues how to go "back in history" using subversion on the ports repository.


----------



## byrnejb (May 22, 2020)

Although I do discover this:`https://github.com/freebsd/freebsd-ports/tree/branches/`.  Which is why I was looking for a date in the first instance.


----------



## zirias@ (May 22, 2020)

Ok, then the "there never were any" isn't entirely true, as there seem a few very old branches named after FreeBSD releases. I don't know what was their purpose, but such branches don't exist in the current branching scheme, as there are only "quarterly snapshot" branches.

Yes, if you don't mind having all outdated software, you could just checkout the latest quarterly branch that was created before EOL of your base system. Or you could use a current ports tree and just get older ports manually where needed. 

I see you have problems with samba, they should be solvable though. A provisioned domain should still work after upgrading samba, I'd rather invest some more time there instead of trying to continue operating an EOL system, my gut feeling is that will be less work in the long run.


----------



## byrnejb (May 22, 2020)

The entire problem is getting the existing domain off of the obsolete installation.  All of this confusing and tedious effort on my part is simply to discover what set of tools will accomplish this, short of setting up an entire new DOMAIN.  If `rsync` worked the way the samba people say it should with respect to acls then this problem would not exist and I would not be spending my time in this fashion.  But, `rsync` apparently does not.  What the cause of this is I do not know.  Perhaps the nt style acls in SAMBA43 cannot be transitioned to the acls in samba410 at all and I am on a fools errand.

However, until that is proven I must attempt to find a way to get the domain moved.  That necessarily involves testing various hypotheses.  Building older software to get a second 10.3 vm working with the exact same software on the DC is one of the paths that I am following.  But I cannot do that unless I have the software and I cannot, or do not know how to, get the packages that I need from `pkg.freebsd.org` any more.  Perforce I must build them.  Which requires the source, which must be consistent with respect to the 147 other packages that samba43 requires to build.  etc., etc., etc.

If I could get the (last) latest packages for release-10.3 from`https://pkg.freebsd.org/FreeBSD:10:amd64/release_3/latest`, as one might expect, that would deal with that problem.  But what this actually returns are the packages from RELEASE-10-3. These are not the most recent as I have newer packages than those returned already installed on the 10.3 system.  The same thing goes for quarterly.  I can set these sources variously to `pkg+https://pkg.freebsd.org/FreeBSD:10:amd64/release_3/{latest|quarterly|Latest}`  but the packages returned from a search are always the ones that were provided when the release point was first published.  There is nothing more recent that I can find or obtain.  Which brings us back to poudiere and the significance of the dates with respect to the source tree.

I appreciate the help I recieve here and I apologize for my misunderstanding, which was frustrating for others.  But, I still have the original problem to solve and there remain a lot of impediments in finding a solution; if one exists.


----------



## Datapanic (May 22, 2020)

You can create a Poudriere jail of FreeBSD 10.3-RELEASE or any other version that has been EOL by using the -m url command switches to specify the location of the archive:


```
poudriere jail -c -j freebsd_10-3x64 -v 10.3-RELEASE -m url=http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/o
ld-releases/amd64/10.3-RELEASE/
```

I haven't found a way to get the Poudriere jail patched afterwards, but that will at least get you the jail.  Then you can use svn to get the ports tree for any date you want.


----------



## byrnejb (May 22, 2020)

I have a Poudriere jail built specifically for 10.3.  This entire thread is related to determining where (as in what date do I use)  in the ports tree I should download sources to successfully build the last versions of packages that were available for 10.3.  Which I have almost done.  The thread sort of got sidetracked over my conflation of ports and base sources.

But I take your point regrading kernel patches.  I had not thought of that.


----------



## T-Daemon (May 22, 2020)

byrnejb said:


> I am trying to get a SAMBA43 AD-DC moved to a more recent version.


Which version have you in mind? samba44?


----------



## byrnejb (May 22, 2020)

No, I am trying to move it to samba410 or 411 on zfs.  This is a sidebar issue trying to build a lookalike test vm to see if `rsync` between two identical 10.3 systems works any better than what  I experience between 10.3 and 12.1


----------



## ljboiler (May 22, 2020)

Just on a whim, have you checked in /var/cache/pkg on the 10.3 machine that you're trying to move off of?


----------



## byrnejb (May 25, 2020)

Yes, I started with that.  However, the number of dependencies are rather large, approximately 145, and the required versions of some of these are not in the cache.  Why I do not know because it has ever been cleaned but they are not there.

In any case, I have finally managed to build the latest version, to gether with all its dependencies,  in a poudriere 10.3 jail. So I am going to go with that for now.


----------

