We've release version 3.0.4. It has a long changelong from 3.0.3: http://freeradius.org/version3.html But the wait has been worth it, I think. Lots of minor fixes, and many new features. The regex handling for strings has been fixed. This means that where it was hard / impossible to use regexes before, it's now simpler. The down-side is that you MAY have to update your regexes. Since the old ones didn't work in some situations, fixing them is preferable to leaving them broken. Alan DeKok.
Did the fixes for my issue #765 go in here? Will there be a 2.2.6 with those fixes as well sometime soon. I'd like to work on getting these pulled into pkgsrc. Sent from my iPhone
On Sep 10, 2014, at 11:59, Alan DeKok <aland@deployingradius.com> wrote:
We've release version 3.0.4. It has a long changelong from 3.0.3:
http://freeradius.org/version3.html
But the wait has been worth it, I think. Lots of minor fixes, and many new features.
The regex handling for strings has been fixed. This means that where it was hard / impossible to use regexes before, it's now simpler. The down-side is that you MAY have to update your regexes.
Since the old ones didn't work in some situations, fixing them is preferable to leaving them broken.
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
On 10 Sep 2014, at 11:59, Alan DeKok <aland@deployingradius.com> wrote:
We've release version 3.0.4. It has a long changelong from 3.0.3:
http://freeradius.org/version3.html
But the wait has been worth it, I think. Lots of minor fixes, and many new features.
The regex handling for strings has been fixed. This means that where it was hard / impossible to use regexes before, it's now simpler. The down-side is that you MAY have to update your regexes.
Specifically, if you were using attribute references: if (&Attribute =~ /my regex/) { } The raw value of the attribute will be used without any pre-escaping. This applies not just to regexes but all comparisons. update request { Tmp-String-0 := '"foo"' } Can now be matched with: if (&Tmp-String-0 := '"foo"') { Instead of: if (&Tmp-String-0 := '\"foo\"') { Using the raw value however means that values with embedded \0s can cause issues. Most of the comparison code has been fixed, but there's still problems with regexes, due to the POSIX functions (regcomp, regexec), not taking a length argument. There are non-POSIX extensions (regncomp, renexec), but they're not in the PCRE compatibility library, so we've got to consider what to do there. If your strings/regexes don't contain/deal with unprintables or double quotes, no changes are required. Arran Cudbard-Bell <a.cudbardb@freeradius.org> FreeRADIUS development team FD31 3077 42EC 7FCD 32FE 5EE2 56CF 27F9 30A8 CAA2
Hi Arran, On 09/10/2014 11:24 PM, Arran Cudbard-Bell wrote:
On 10 Sep 2014, at 11:59, Alan DeKok <aland@deployingradius.com> wrote:
We've release version 3.0.4. It has a long changelong from 3.0.3:
http://freeradius.org/version3.html
But the wait has been worth it, I think. Lots of minor fixes, and many new features.
The regex handling for strings has been fixed. This means that where it was hard / impossible to use regexes before, it's now simpler. The down-side is that you MAY have to update your regexes.
Specifically, if you were using attribute references:
if (&Attribute =~ /my regex/) {
}
The raw value of the attribute will be used without any pre-escaping.
This applies not just to regexes but all comparisons.
update request { Tmp-String-0 := '"foo"' }
Can now be matched with:
if (&Tmp-String-0 := '"foo"') {
Instead of:
if (&Tmp-String-0 := '\"foo\"') {
Using the raw value however means that values with embedded \0s can cause issues.
Most of the comparison code has been fixed, but there's still problems with regexes, due to the POSIX functions (regcomp, regexec), not taking a length argument.
There are non-POSIX extensions (regncomp, renexec), but they're not in the PCRE compatibility library, so we've got to consider what to do there.
If your strings/regexes don't contain/deal with unprintables or double quotes, no changes are required.
Thank you for describing the change. Still, can you provide more details? As this has potential of breaking user configurations, we (Red Hat) should try to be as specific as possible to help people avoid or quickly fix the issues. How was it working before and how is it working now? Am I right that some characters (double quote, perhaps backslash, what else?) were escaped in attribute values before comparison/regex matching? Which ones exactly? Am I right that nothing is escaped now? What do you think should be done to make a configuration compatible with the new version? Or, if there are particular pieces of changed code which are easy to list, I can try to understand what changed myself. Thank you. Nick
Nikolai Kondrashov wrote:
Still, can you provide more details?
String comparisons were sometimes handled inconsistently. Let's take regular expressions as an example: if (Filter-Id =~ /foo/) { The previous code would print the value of the Filter-Id to a string, and then perform the regex check on the printed string. That meant that certain characters like ", ', etc. which were in the Filter-Id were escaped " --> \", etc. That escaping made it difficult to create a regex which matched. The new behavior is that the regex checks are performed on the Filter-Id string, without any modifications. This means that " is just itself. The good news is that this change should have minimal effect. The example Filter-Id regex above will work the same way, and won't have it's behavior change. The ONLY change is for regexes, string compares, etc. which have embedded quotes, backslashes, etc. in them. Previously, the "special" characters had to be escaped. Now they don't.
As this has potential of breaking user configurations, we (Red Hat) should try to be as specific as possible to help people avoid or quickly fix the issues.
It would also help if RedHat upgraded their version of FreeRADIUS to something other than 2.1.12. That is causing ME problems for support. People keep coming here to complain about issues, because you shipping a version which is 4 years old. It works both ways. If you want us to help you, it would be polite to help us. So far, the only contributions we've seen from RedHat are bugs fixes for the RedHat builds, and complaints that we need to do more work.
Or, if there are particular pieces of changed code which are easy to list, I can try to understand what changed myself.
The git history is publicly available. Alan DeKok.
Hi Alan, On 09/11/2014 04:17 PM, Alan DeKok wrote:
Nikolai Kondrashov wrote:
Still, can you provide more details?
String comparisons were sometimes handled inconsistently. Let's take regular expressions as an example:
if (Filter-Id =~ /foo/) {
The previous code would print the value of the Filter-Id to a string, and then perform the regex check on the printed string. That meant that certain characters like ", ', etc. which were in the Filter-Id were escaped " --> \", etc. That escaping made it difficult to create a regex which matched.
The new behavior is that the regex checks are performed on the Filter-Id string, without any modifications. This means that " is just itself.
The good news is that this change should have minimal effect. The example Filter-Id regex above will work the same way, and won't have it's behavior change.
The ONLY change is for regexes, string compares, etc. which have embedded quotes, backslashes, etc. in them. Previously, the "special" characters had to be escaped. Now they don't.
Thank you for an extended explanation, it makes things clearer. Could you please point me in the general direction where I should look in the code, to see exactly which characters were escaped before? It's not so important, as none are escaped now, as I understand, but will still be useful.
As this has potential of breaking user configurations, we (Red Hat) should try to be as specific as possible to help people avoid or quickly fix the issues.
It would also help if RedHat upgraded their version of FreeRADIUS to something other than 2.1.12. That is causing ME problems for support. People keep coming here to complain about issues, because you shipping a version which is 4 years old.
I understand. I will be working on that in an upcoming RHEL6 release - that's the only way we can get a new package version in. Unfortunately, when I stepped into the package maintenance, the window for bringing new versions into the release being done at that time was closing and I was in no condition to advocate for an upgrade yet.
It works both ways. If you want us to help you, it would be polite to help us. So far, the only contributions we've seen from RedHat are bugs fixes for the RedHat builds, and complaints that we need to do more work.
I understand. I hope I wasn't heavy on the complaints personally. With regards for more help, I don't have much time allocated for maintenance, but as I get to know FreeRADIUS better, I hope my help will get more meaningful.
Or, if there are particular pieces of changed code which are easy to list, I can try to understand what changed myself.
The git history is publicly available.
Sure, it's just not easy to search through, not knowing what you're looking for. Now that you've given more details it will be easier, but otherwise a file name will help further. Thank you. Sincerely, Nick
Thank you for an extended explanation, it makes things clearer.
Could you please point me in the general direction where I should look in the code, to see exactly which characters were escaped before?
fr_print_string print.c:132 Arran Cudbard-Bell <a.cudbardb@freeradius.org> FreeRADIUS development team FD31 3077 42EC 7FCD 32FE 5EE2 56CF 27F9 30A8 CAA2
On 09/11/2014 11:59 PM, Arran Cudbard-Bell wrote:
Thank you for an extended explanation, it makes things clearer.
Could you please point me in the general direction where I should look in the code, to see exactly which characters were escaped before?
fr_print_string
print.c:132
Thank you, Arran. For my own better understanding and perhaps to save time for others, here is my summary of the code. Control characters (< 0x20) and all bytes not making valid UTF-8 character sequences were escaped as \OOO (where O is an octal digit), with the exception of CR, LF and TAB which were escaped as '\r', '\n' and '\t' respectively. Also, '\' and '"' were escaped as '\\' and '\"' respectively. Nick
Nikolai Kondrashov wrote
I understand. I will be working on that in an upcoming RHEL6 release - that's the only way we can get a new package version in.
OK. I'm just surprised that four years went by with zero upgrades.
I understand. I hope I wasn't heavy on the complaints personally.
No.
With regards for more help, I don't have much time allocated for maintenance, but as I get to know FreeRADIUS better, I hope my help will get more meaningful.
That would help. Alan DeKok.
We encourage people to use the latest release, even when OS vendors don't upgrade their packages. To help people use the latest release, we now offer "official" pre-built packages. They currently are for a limited range of systems. If there is demand for more packages, please ask. We'll see what we can do. The packages are available here: https://packages.networkradius.com/ Alan DeKok.
Alan, Which SPEC was used to build the CentOS packages? The RHEL spec in the package source? Stefan ________________________________________ From: freeradius-users-bounces+stefan.paetow=ja.net@lists.freeradius.org [freeradius-users-bounces+stefan.paetow=ja.net@lists.freeradius.org] on behalf of Alan DeKok [aland@deployingradius.com] Sent: 10 September 2014 21:56 To: FreeRadius users mailing list Subject: Re: Release of Version 3.0.4 We encourage people to use the latest release, even when OS vendors don't upgrade their packages. To help people use the latest release, we now offer "official" pre-built packages. They currently are for a limited range of systems. If there is demand for more packages, please ask. We'll see what we can do. The packages are available here: https://packages.networkradius.com/ Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html Janet(UK) is a trading name of Jisc Collections and Janet Limited, a not-for-profit company which is registered in England under No. 2881024 and whose Registered Office is at Lumen House, Library Avenue, Harwell Oxford, Didcot, Oxfordshire. OX11 0SG. VAT No. 614944238
Stefan Paetow wrote:
Which SPEC was used to build the CentOS packages? The RHEL spec in the package source?
The "redhat" directory in the server source. It's not really RHEL, because RedHat doesn't want that... but it's a package which will work, and which follows the typical RedHat install. Alan DeKok.
On 09/10/2014 06:59 PM, Alan DeKok wrote:
We've release version 3.0.4. It has a long changelong from 3.0.3:
Congratulations on the release! There was surely a lot of work done on it. I'm also happy to see it done in time to make it into the next RHEL7 release. Can I ask to have it tagged in Git? It will make seeing which changes got in there and tracking further changes easier. Thank you. Nick
On Fri, Sep 12, 2014 at 3:46 PM, Nikolai Kondrashov <Nikolai.Kondrashov@redhat.com> wrote:
On 09/10/2014 06:59 PM, Alan DeKok wrote:
We've release version 3.0.4. It has a long changelong from 3.0.3:
Congratulations on the release! There was surely a lot of work done on it.
I'm also happy to see it done in time to make it into the next RHEL7 release.
Can I ask to have it tagged in Git? It will make seeing which changes got in there and tracking further changes easier.
The tag is there since two days ago https://github.com/FreeRADIUS/freeradius-server/releases -- Fajar
On 09/12/2014 12:32 PM, Fajar A. Nugraha wrote:
On Fri, Sep 12, 2014 at 3:46 PM, Nikolai Kondrashov <Nikolai.Kondrashov@redhat.com> wrote:
On 09/10/2014 06:59 PM, Alan DeKok wrote:
We've release version 3.0.4. It has a long changelong from 3.0.3:
Congratulations on the release! There was surely a lot of work done on it.
I'm also happy to see it done in time to make it into the next RHEL7 release.
Can I ask to have it tagged in Git? It will make seeing which changes got in there and tracking further changes easier.
The tag is there since two days ago
Ah, thank you. I didn't notice it, because it didn't get pulled into my repo, and that is because it wasn't a part of any branch, which is unexpected and is somewhat an uncommon practice. Should the release_3_0_4 branch be advanced to the tag, perhaps? For anyone else: you have to use "git pull --tags" to pull it. Nick
On 12 Sep 2014, at 07:34, Alan DeKok <aland@deployingradius.com> wrote:
Nikolai Kondrashov wrote:
I didn't notice it, because it didn't get pulled into my repo, and that is because it wasn't a part of any branch, which is unexpected and is somewhat an uncommon practice.
Hmm... Arran deleted the release branch from github.
I don't want hundreds of release branches cluttering up the repository, it looks messy, and there's absolutely no point in keeping the old branches around. If you want to add additional commits on top of the tag, create a local branch from the tag. Arran Cudbard-Bell <a.cudbardb@freeradius.org> FreeRADIUS development team FD31 3077 42EC 7FCD 32FE 5EE2 56CF 27F9 30A8 CAA2
On 10-09-14 17:59, Alan DeKok wrote:
We've release version 3.0.4. It has a long changelong from 3.0.3:
The file debian/changelog has been updated with the complete changelog of the 3.0.4 release. Unfortunately, this file is not completely freeform, and the way the entries are added generates parsing errors when a debian package is compiled. A short description of the way the file should look is given at https://www.debian.org/doc/debian-policy/ch-source.html#s-dpkgchangelog Easiest way to fix this: * Remove the lines "Feature improvements" and "Bug fixes" * `s/^\t-/ */` However, modifying changelogs is seen as a bad practice, so I'm not sure if this should be changed or not. -- Herwin Weststrate
Herwin Weststrate wrote:
The file debian/changelog has been updated with the complete changelog of the 3.0.4 release. Unfortunately, this file is not completely freeform, and the way the entries are added generates parsing errors when a debian package is compiled.
So much for following examples.
A short description of the way the file should look is given at https://www.debian.org/doc/debian-policy/ch-source.html#s-dpkgchangelog
Easiest way to fix this:
* Remove the lines "Feature improvements" and "Bug fixes" * `s/^\t-/ */`
However, modifying changelogs is seen as a bad practice, so I'm not sure if this should be changed or not.
We'll leave it the way it is. Alan DeKok.
participants (7)
-
Alan DeKok -
Arran Cudbard-Bell -
coy.hile@coyhile.com -
Fajar A. Nugraha -
Herwin Weststrate -
Nikolai Kondrashov -
Stefan Paetow