Three patches and comments

Hi,

We just finished installing and customzing RT 1.3.70. I like the
modularity and the Scrips are very cool. A couple things that may be of
help:

  1. The install would go a lot smoother if the user must create the
    database already. We ran into a lot of problems getting all the
    username/passwords correct. I would recommend just having options for
    database name, database user and database pass to run as and then create
    the tables and go. Leave creating the database and setting up db
    permissions to whoever installed the database server.

  2. Found a small bug:

Index: Transaction.pm
RCS file: /raid/cvsroot/rt/lib/RT/Attic/Transaction.pm,v
retrieving revision 1.1.2.88
diff -r1.1.2.88 Transaction.pm
228d227
< if (@_) {
230d228
< }

You had an if … around a my’d variable making it never in scope.

  1. Had quite a few issues with attachments and template replies. You
    use:

{$Transaction->Message->First->Content}

everywhere in the templates. This runs into problems as if I send a
message with an attachment, in the attachments table the first entry has
no content as it’s a multipart message. I ended up updating the
templates to:

{
$Transaction->Attachments(‘text/plain’)->First->Content ||
$Transaction->Attachments(‘text/html’)->First->Content ||
“No Viewable Message.”
}

to get the first viewable part. Might be nice to add this as a builtin
function. Something like:

    {$Transaction->ViewablePart}

It would also be useful to have a function that would quote previous
replies as in:

    Support Ticket Summary:
    {$Transaction->QuotedSummary}

and that would go back through the tickets and create a quoted history
much like you see via the web.

  1. We added an Auto Assign feature that would assign an incoming ticket
    to a member. It allows you to call rt-mailgate with --group=groupname
    and it will assign the incoming case to the member of the group with the
    fewest support cases. If no one in the group can be found, it will look
    for someone in the ‘general’ group.

A patch follows if anyone is interested. I couldn’t get my head around
DBIx::SearchBuilder for table joins I’m afraid, so I used raw sql. =)

[root@alex bin]# diff rt-mailgate /usr/local/rt2/bin/rt-mailgate
43c43
< my ($From, $TicketId, $Subject,$SquelchReplies);

my ($Group, $From, $TicketId, $Subject,$SquelchReplies);
67,68c67,69
<
<
if (($flag eq ‘-g’) or ($flag eq ‘–group’)) {
$Group = shift @ARGV;
}
165a167,175

Auto Assign it to someone in a group if specified.

  my $Owner;
  if ($Group) {
          $Owner = AutoAssign($Group);
          if (! $Owner and ($Group ne 'general')) {
                  $Owner = AutoAssign ('general');
          }
  }

180a191

                      Owner => $Owner,

286a298,340

sub AutoAssign {
my $Group = shift;
my $Query = qq~
SELECT GroupMembers.UserId
FROM Groups, GroupMembers
WHERE Groups.Name = ? AND (GroupMembers.GroupId = Groups.id)
~;
my $sth = $RT::Handle->SimpleQuery ($Query, $Group);
my $users = $sth->fetchall_arrayref;
my $string = ‘(’ . join (’,’, map { $_->[0] } @$users) . ‘)’;
print “users: ($string)\n”;
if ($string eq ‘()’) { return; }

$Query = qq~

SELECT Users.id
FROM Users LEFT JOIN Tickets ON Users.id = Tickets.Owner
WHERE Tickets.Owner IS NULL
AND (Users.id IN $string)
LIMIT 1
~;
$sth = $RT::Handle->SimpleQuery ($Query);
my ($userid) = $sth->fetchrow_array;
print “Got user: $userid\n”;
if ($userid) { return $userid; }

No one found with no cases, find least busy guy.

$Query = qq~

SELECT Owner, COUNT(*) AS Volume
FROM Groups, GroupMembers, Tickets
WHERE Groups.Name = ? AND
(Groups.id = GroupMembers.GroupId AND
GroupMembers.UserId = Tickets.Owner)
GROUP BY Owner
ORDER BY Volume ASC
LIMIT 1
~;
$sth = $RT::Handle->SimpleQuery ($Query, $Group);
($userid) = $sth->fetchrow_array;
print “Second user: $userid\n”;

return $userid;

}

  1. Here’s a patch to SendEmail.pm that will forward attachments as well
    as the regular message. I couldn’t see a good way to do this in the
    template unfortunately, but would love to hear ideas:

[root@alex Action]# diff SendEmail.pm /usr/local/rt2/lib/RT/Action/SendEmail.pm
54a58

my $attach = shift;

58a63,64

my $TopPart = $self->TransactionObj->Message->First();

60,63c66,69
< if (defined $self->TransactionObj->Message->First()) {
< my $headers = $self->TransactionObj->Message->First->Headers();
< if ($headers =~ /^RT-Squelch-Replies-To: (.*?)$/si) {
< my $blacklist = $1;

if (defined $TopPart) { 
    my $headers = $TopPart->Headers();
    if ($headers =~ /^RT-Squelch-Replies-To: (.*?)$/si) {
      my $blacklist = $1;

66c72
< my @headers = qw (To Cc Bcc);

      my @headers = qw (To Cc Bcc);

69,71c75,78
< while ( my $line = $self->TemplateObj->MIMEObj->head->get($header)) {
< if ($line =~ s/$blacklist,//) {
< $self->TemplateObj->MIMEObj->head->replace($header, $line);

      while ( my $line =  $self->TemplateObj->MIMEObj->head->get($header)) {
          if ($line =~ s/$blacklist,//)  {
              $self->TemplateObj->MIMEObj->head->replace($header, $line);
          }

72a80,107

    }
  if ($attach) {
          my $type = lc $TopPart->ContentType;
          if ($type =~ /multipart/) {
              my $Attachments = $self->TransactionObj->Attachments;
              $Attachments->Next; # Skip first part (Empty multipart).
              my $found_viewable = 0;
              while (my $Attach = $Attachments->Next) {
                  my $subtype = lc $Attach->ContentType;

Skip text/plain and text/html if this is an HTML message.

                  if (!$found_viewable and $subtype =~ /text/) {
                          $found_viewable = 1;
                          next;
                  }

Skip embedded messages

                  next if ($subtype =~ /multipart/);

Otherwise Attach the file.

                  $self->TemplateObj->MIMEObj->attach (
                                  Type => $Attach->ContentType,
                                  Encoding => "-SUGGEST",
                                  Filename => $Attach->Filename,
                                  Data => $Attach->Content
                          );
              }
            }

75,76c110,112
< }
< $self->TemplateObj->MIMEObj->make_singlepart;

unless ($self->TemplateObj->MIMEObj->parts > 1) {
    $self->TemplateObj->MIMEObj->make_singlepart;
}

This basically says if you pass 1 into Commit() then the SendMail will
attach any attached files in the current transaction.

Hope this helps someone, and let me know if you have any questions.

Cheers,

Alex

-------------------- Gossamer Threads Inc. ----------------------
Alex Krohn Email: alex@gossamer-threads.com
Internet Consultant Phone: (604) 687-5804
http://www.gossamer-threads.com Fax : (604) 687-5806

A patch follows if anyone is interested. I couldn’t get my head around
DBIx::SearchBuilder for table joins I’m afraid, so I used raw sql. =)

Nice feature, though I’d daresay it fits better into the Scrips
system. That would allow the feature to be turned off and on for any
given queue.

Tobias Brox - freelancer for hire!
Programming, system administration, etc
+47 98660706 / tobiasb@suptra.org

Hi,

A patch follows if anyone is interested. I couldn’t get my head around
DBIx::SearchBuilder for table joins I’m afraid, so I used raw sql. =)

Nice feature, though I’d daresay it fits better into the Scrips
system. That would allow the feature to be turned off and on for any
given queue.

True, although it really has to be “turned on” as you have to pass in to
rt-mailgate the option ‘–group=groupname’, if you don’t it will work
just as normal. We use it to setup email aliases that will feed directly
into given queue’s. Could this be accomplished through Scrips? I’m not
sure if you’d have access to the arguments at that point.

Cheers,

Alex

-------------------- Gossamer Threads Inc. ----------------------
Alex Krohn Email: alex@gossamer-threads.com
Internet Consultant Phone: (604) 687-5804
http://www.gossamer-threads.com Fax : (604) 687-5806

Hi,

We just finished installing and customzing RT 1.3.70. I like the
modularity and the Scrips are very cool. A couple things that may be of
help:

  1. The install would go a lot smoother if the user must create the
    database already. We ran into a lot of problems getting all the
    username/passwords correct. I would recommend just having options for
    database name, database user and database pass to run as and then create
    the tables and go. Leave creating the database and setting up db
    permissions to whoever installed the database server.

In a lot of cases, the folks setting up RT don’t have a local DBA.
In what ways did the auto-creation bite you? With which database?

  1. Found a small bug:
    diff -r1.1.2.88 Transaction.pm
    228d227
    < if (@_) {
    You had an if … around a my’d variable making it never in scope.

Fixed it. Thanks.

  1. Had quite a few issues with attachments and template replies.
    to get the first viewable part. Might be nice to add this as a builtin
    function. Something like:

     {$Transaction->ViewablePart}
    

Yeah. This has got to happen. Part of the idea behind the templates
is that they should be easy to customize. Making people include perl
tests for definedness in their templates just isn’t cool :wink:

It would also be useful to have a function that would quote previous

and that would go back through the tickets and create a quoted history
much like you see via the web.

Inneresting…I’ll ponder it. but it probably won’t make it for 2.0.0

  1. We added an Auto Assign feature that would assign an incoming ticket
    to a member. It allows you to call rt-mailgate with --group=groupname
    and it will assign the incoming case to the member of the group with the
    fewest support cases. If no one in the group can be found, it will look
    for someone in the ‘general’ group.

Neat feature. Something like this will get into the core eventually.

A patch follows if anyone is interested. I couldn’t get my head around
DBIx::SearchBuilder for table joins I’m afraid, so I used raw sql. =)

Well, since searchbuilder doesn’t yet do LEFT JOINs (coming soon) because they’re not consistent from pg/mysql to oracle, it would be tough, i’d bet :wink:
And yeah, as tobias mentioned, it would be much better to do this as some
form of scrip, so that it will be applied to tickets that are created via
other interfaces…

  1. Here’s a patch to SendEmail.pm that will forward attachments as well
    as the regular message. I couldn’t see a good way to do this in the
    template unfortunately, but would love to hear ideas:

I suspect that the way that something like this will get in eventually is
by having a “NotifyWithAttachments” Action which subclasses Notify

This basically says if you pass 1 into Commit() then the SendMail will
attach any attached files in the current transaction.

FWIW, this should probably be done in “Prepare” so that we could concievably
take some constructive action if it fails.

Hope this helps someone, and let me know if you have any questions.

Thanks for the patches and suggestions.

Cheers,

Alex

-------------------- Gossamer Threads Inc. ----------------------
Alex Krohn Email: alex@gossamer-threads.com
Internet Consultant Phone: (604) 687-5804
http://www.gossamer-threads.com Fax : (604) 687-5806


Rt-devel mailing list
Rt-devel@lists.fsck.com
http://lists.fsck.com/mailman/listinfo/rt-devel

jesse reed vincent – root@eruditorum.orgjesse@fsck.com
70EBAC90: 2A07 FC22 7DB4 42C1 9D71 0108 41A3 3FB3 70EB AC90

As I sit here alone looking at green text on a laptop in a mostly bare room listening
to loud music wearing all black, I realize that that it is much less cool in real life :slight_smile:
–Richard Tibbetts

Hi Jesse,

  1. The install would go a lot smoother if the user must create the
    database already. We ran into a lot of problems getting all the
    username/passwords correct. I would recommend just having options for
    database name, database user and database pass to run as and then create
    the tables and go. Leave creating the database and setting up db
    permissions to whoever installed the database server.

In a lot of cases, the folks setting up RT don’t have a local DBA.
In what ways did the auto-creation bite you? With which database?

Well, we were using mysql. We entered all the passwords into the
makefile, both the root one that has access to create databases and
setup users, as well as the one we wanted root to run as. When doing a
’make install’, we were suprised to see that it asked for a password
(since we had entered everything).

The password came from one of the mysql tools (specifying -p without
arguments), and it wasn’t obvious which one was wanted. The first one
was the root password which I got right. It asked me for a password a
second time which I thought was for the rt2 user and got wrong and it
then choked saying invalid password.

I then had to manually drop the database as the install would fail
saying database already exists.

Hope that helps,

Alex

-------------------- Gossamer Threads Inc. ----------------------
Alex Krohn Email: alex@gossamer-threads.com
Internet Consultant Phone: (604) 687-5804
http://www.gossamer-threads.com Fax : (604) 687-5806

In a lot of cases, the folks setting up RT don’t have a local DBA.
In what ways did the auto-creation bite you? With which database?

Well, we were using mysql. We entered all the passwords into the
makefile, both the root one that has access to create databases and
setup users, as well as the one we wanted root to run as. When doing a
’make install’, we were suprised to see that it asked for a password
(since we had entered everything).

It has to do with not passing the password as a commandline parameter,
so that you don’t get burned by a user timing a ps and discovering your
RT password.

The password came from one of the mysql tools (specifying -p without
arguments), and it wasn’t obvious which one was wanted.

Then it needs better documentation :wink: Was this 1.3.70 or a slightly earlier
release? This got improved somewhat late in the 1.3.6x series…


Rt-devel mailing list
Rt-devel@lists.fsck.com
http://lists.fsck.com/mailman/listinfo/rt-devel

jesse reed vincent – root@eruditorum.orgjesse@fsck.com
70EBAC90: 2A07 FC22 7DB4 42C1 9D71 0108 41A3 3FB3 70EB AC90

Gur SOV jnagf gb znxr guvf fvt vyyrtny.

Hi,

The password came from one of the mysql tools (specifying -p without
arguments), and it wasn’t obvious which one was wanted.

Then it needs better documentation :wink: Was this 1.3.70 or a slightly earlier
release? This got improved somewhat late in the 1.3.6x series…

It was 1.3.70. It would be nice to add some prompts in there asking if
it should create the database, and asking if it should add the user. If
the password is prompted, why do you need the DB_DBA_PASSWORD?

Oh, one other problem we ran into during setup. Our version of
perl/linux would not allow non-root users to run setuid perl scripts. So
if you were not root, then you could not run rt-mailgate. The old
Request Tracker with the C file worked fine as setuid.

Since we are on a dedicated server with only trusted accounts, we ended
up just setting everything 755.

Cheers,

Alex

-------------------- Gossamer Threads Inc. ----------------------
Alex Krohn Email: alex@gossamer-threads.com
Internet Consultant Phone: (604) 687-5804
http://www.gossamer-threads.com Fax : (604) 687-5806

Hi,

The password came from one of the mysql tools (specifying -p without
arguments), and it wasn’t obvious which one was wanted.

Then it needs better documentation :wink: Was this 1.3.70 or a slightly earlier
release? This got improved somewhat late in the 1.3.6x series…

It was 1.3.70. It would be nice to add some prompts in there asking if
it should create the database, and asking if it should add the user. If
the password is prompted, why do you need the DB_DBA_PASSWORD?

Good question.

Oh, one other problem we ran into during setup. Our version of
perl/linux would not allow non-root users to run setuid perl scripts. So
if you were not root, then you could not run rt-mailgate. The old
Request Tracker with the C file worked fine as setuid.

What distribution? Most distributions bundle setgid perl as a seperate
package. And no the C wrapper really wasn’t fine. It caused more problems
than any other section of code.

-j

jesse reed vincent – root@eruditorum.orgjesse@fsck.com
70EBAC90: 2A07 FC22 7DB4 42C1 9D71 0108 41A3 3FB3 70EB AC90

Any e-mail sent to the SLA will immediately become the intellectual property
of the SLA and the author of said message will enter into a period of
indentured servitude which will last for a period of time no less than seven
years.

Hi,

Oh, one other problem we ran into during setup. Our version of
perl/linux would not allow non-root users to run setuid perl scripts. So
if you were not root, then you could not run rt-mailgate. The old
Request Tracker with the C file worked fine as setuid.

What distribution? Most distributions bundle setgid perl as a seperate
package. And no the C wrapper really wasn’t fine. It caused more problems
than any other section of code.

Hmm, do I need to set path to a special perl? Out of the box on two
systems I get:

[alex@alex alex]$ ./test.pl
Can’t do setuid
[alex@alex alex]$ ls -l | grep test.pl
-rwxr-sr-x 1 rt rt 41 May 8 18:27 test.pl*
[alex@alex alex]$ uname -a
Linux 2.2.14-15mdksmp #1 SMP Tue Jan 4 21:36:33 CET 2000 i686 unknown
[alex@alex alex]$ perl -v

This is perl, version 5.005_03 built for i386-linux

It’s based off of Mandrake 7.2. I’m not that familiar with setuid I’m
afraid.

Cheers,

Alex

-------------------- Gossamer Threads Inc. ----------------------
Alex Krohn Email: alex@gossamer-threads.com
Internet Consultant Phone: (604) 687-5804
http://www.gossamer-threads.com Fax : (604) 687-5806

You shouldn’t have to modify anything related to RT to make this work right.
I have a dim memory that mandrake has some sort of magic switch to make
setuid perl work. You should probably consult your vendor.

    -jOn Tue, May 08, 2001 at 06:33:19PM -0700, Alex Krohn wrote:

Hi,

Oh, one other problem we ran into during setup. Our version of
perl/linux would not allow non-root users to run setuid perl scripts. So
if you were not root, then you could not run rt-mailgate. The old
Request Tracker with the C file worked fine as setuid.

What distribution? Most distributions bundle setgid perl as a seperate
package. And no the C wrapper really wasn’t fine. It caused more problems
than any other section of code.

Hmm, do I need to set path to a special perl? Out of the box on two
systems I get:

[alex@alex alex]$ ./test.pl
Can’t do setuid
[alex@alex alex]$ ls -l | grep test.pl
-rwxr-sr-x 1 rt rt 41 May 8 18:27 test.pl*
[alex@alex alex]$ uname -a
Linux 2.2.14-15mdksmp #1 SMP Tue Jan 4 21:36:33 CET 2000 i686 unknown
[alex@alex alex]$ perl -v

This is perl, version 5.005_03 built for i386-linux

It’s based off of Mandrake 7.2. I’m not that familiar with setuid I’m
afraid.

Cheers,

Alex

-------------------- Gossamer Threads Inc. ----------------------
Alex Krohn Email: alex@gossamer-threads.com
Internet Consultant Phone: (604) 687-5804
http://www.gossamer-threads.com Fax : (604) 687-5806

jesse reed vincent – root@eruditorum.orgjesse@fsck.com
70EBAC90: 2A07 FC22 7DB4 42C1 9D71 0108 41A3 3FB3 70EB AC90

autoconf is your friend until it mysteriously stops working, at which
point it is a snarling wolverine attached to your genitals by its teeth
(that said, it’s better than most of the alternatives) – Nathan Mehl

Alex Krohn writes:

Hmm, do I need to set path to a special perl? Out of the box on two
systems I get:

[alex@alex alex]$ ./test.pl
Can’t do setuid

I ran into the same problem with a FreeBSD 4.3-RELEASE install. It turned
out that for some reason sperl (the suid root perl) wasn’t suid. :slight_smile:
After I fixed that, it worked fine. Dunno if this is a bug or a feature.
-Matt

Hi,

[alex@alex alex]$ ./test.pl
Can’t do setuid

I ran into the same problem with a FreeBSD 4.3-RELEASE install. It turned
out that for some reason sperl (the suid root perl) wasn’t suid. :slight_smile:
After I fixed that, it worked fine. Dunno if this is a bug or a feature.

Thanks! Figured it out. For anyone else who hits this:

When you run a setuid perl script, perl will rerun the script using
sperl. Seems by default Mandrake installations ship sperl with no
permissions. Just look for sperl5.xxxx and make sure the permissions on
it are set properly and are suid.

Seems to be the default for a number of systems, might be worth
mentioning in the readme.

Cheers,

Alex

Yes, on some [many?] systems sperl isn’t setuid because of numerous
problems discovered with 5.005 suidperl (local root exploits).

Should be a FAQ for RT, I guess.

-alexOn Tue, 8 May 2001, Alex Krohn wrote:

Hi,

[alex@alex alex]$ ./test.pl
Can’t do setuid

I ran into the same problem with a FreeBSD 4.3-RELEASE install. It turned
out that for some reason sperl (the suid root perl) wasn’t suid. :slight_smile:
After I fixed that, it worked fine. Dunno if this is a bug or a feature.

Thanks! Figured it out. For anyone else who hits this:

When you run a setuid perl script, perl will rerun the script using
sperl. Seems by default Mandrake installations ship sperl with no
permissions. Just look for sperl5.xxxx and make sure the permissions on
it are set properly and are suid.

Seems to be the default for a number of systems, might be worth
mentioning in the readme.

Cheers,

Alex


Rt-devel mailing list
Rt-devel@lists.fsck.com
http://lists.fsck.com/mailman/listinfo/rt-devel

Jesse jesse@fsck.com writes:

You shouldn’t have to modify anything related to RT to make this
work right. I have a dim memory that mandrake has some sort of
magic switch to make setuid perl work. You should probably consult
your vendor.

I’m using Debian GNU/Linux (Testing). perl-suid comes in a separate
package and gets installed as /usr/bin/suidperl (in 5.6).

It would help if you in the configuration file explicitly asked for
the path for a suidperl. And if not all programs should be suidpel,
you should ask for both paths.

There is no longer an option to use alternatives to point perl at
suidperl. … I could do it manually, but that would breake with an
upgrade.

/ Jonas - http://jonas.liljegren.org/myself/en/index.html

Alex Krohn alex@gossamer-threads.com writes:

When you run a setuid perl script, perl will rerun the script using
sperl. Seems by default Mandrake installations ship sperl with no
permissions. Just look for sperl5.xxxx and make sure the permissions on
it are set properly and are suid.

Youre right. I just thought I had to change the #! then I installed
the perl-suid package… But using /usr/bin/perl works…

/ Jonas - http://jonas.liljegren.org/myself/en/index.html

It’s now noted in the readme. at some point far down the line,
I may try to write up a sudo config file for using sudo to run the RT tools.
But that’s low enough on the priority list for me to not get to it
in the next year or three. If someone wants to contrib one, that would be cool.

The longer term solution may be to make the CLI and mail gateways talk to
an ‘RT server’ process over some IPC mechanism.

    -jOn Tue, May 08, 2001 at 11:49:17PM -0400, Alex Pilosov wrote:

Yes, on some [many?] systems sperl isn’t setuid because of numerous
problems discovered with 5.005 suidperl (local root exploits).

Should be a FAQ for RT, I guess.

-alex

On Tue, 8 May 2001, Alex Krohn wrote:

Hi,

[alex@alex alex]$ ./test.pl
Can’t do setuid

I ran into the same problem with a FreeBSD 4.3-RELEASE install. It turned
out that for some reason sperl (the suid root perl) wasn’t suid. :slight_smile:
After I fixed that, it worked fine. Dunno if this is a bug or a feature.

Thanks! Figured it out. For anyone else who hits this:

When you run a setuid perl script, perl will rerun the script using
sperl. Seems by default Mandrake installations ship sperl with no
permissions. Just look for sperl5.xxxx and make sure the permissions on
it are set properly and are suid.

Seems to be the default for a number of systems, might be worth
mentioning in the readme.

Cheers,

Alex


Rt-devel mailing list
Rt-devel@lists.fsck.com
http://lists.fsck.com/mailman/listinfo/rt-devel

jesse reed vincent – root@eruditorum.orgjesse@fsck.com
70EBAC90: 2A07 FC22 7DB4 42C1 9D71 0108 41A3 3FB3 70EB AC90

. . . when not in doubt, get in doubt. – Old Discordian Proveb

I’m running RT on Conectiva Linux, so I chmoded u+s /usr/bin/suidperl:

[root@pinguim bin]# ls -la /usr/bin/suidperl
-rwsr-xr-x 1 root root 694872 Sep 5 07:15 /usr/bin/suidperl

However, I still get the following error when sending an e-mail to the
queue:

----- The following addresses had permanent fatal errors -----
"|/usr/local/rt2/bin/rt-mailgate --queue abuse --action correspond"
(expanded from: abuse@security.telepar.net.br)

----- Transcript of session follows -----
Can’t do setuid
554 5.3.0 “|/usr/local/rt2/bin/rt-mailgate --queue abuse --action
correspond”… unknown mailer error 2

Any idea ?

Thanks,

Presciliano

Presciliano dos Santos Neto wrote:

I’m running RT on Conectiva Linux, so I chmoded u+s /usr/bin/suidperl:

However, I still get the following error when sending an e-mail to the
queue:

Can’t do setuid

Assuming nothing is removing the suid bit on that executable,
you may have the same problem as has been reported under
Slackware. See

http://www.helgrim.com/rtdocs/faq.html#71

for suggestions.

Presciliano dos Santos Neto wrote:

I’m running RT on Conectiva Linux, so I chmoded u+s /usr/bin/suidperl:

However, I still get the following error when sending an e-mail to the
queue:

Can’t do setuid

Assuming nothing is removing the suid bit on that executable,
you may have the same problem as has been reported under
Slackware. See

http://www.helgrim.com/rtdocs/faq.html#71

Hrmmmm… sounds like a job for something like the majordomo setuid
wrapper program… ultra-tiny setuid compiled program whose only function
is to invoke a perl script with the appropriate settings.

You could probably use the majordomo wrapper program, recompiling to use
the rt group, an rt dummy user, and HOME being /path/to/rt2/bin .

( No, I’m not staying up just to read rt-users )

                         Bruce Campbell                            RIPE
                                                                    NCC
                                                             Operations

Finally finished the install and got it set up, the Web UI works fine, I just have one more problem…

----- The following addresses had permanent fatal errors -----
"|/usr/local/rt2/bin/rt-mailgate --queue support --action correspond"
(reason: 255)
(expanded from: support@pwhsnet.com)

----- Transcript of session follows -----
Can’t do setuid
554 5.3.0 unknown mailer error 255

-rw-r-xr-x 1 root rt 9134 Oct 21 01:48 /usr/local/rt2/bin/rt-mailgate
-rwxr-xr-x 1 root rt 4748 Oct 21 01:48 /usr/local/rt2/bin/webmux.pl

My /etc/aliases is:
support: "|/usr/local/rt2/bin/rt-mailgate --queue support --action correspond"
support-comment: “|/usr/local/rt2/bin/rt-mailgate --queue support --action comment”

Thanks,
Patrick Fish