Where to start?

327 views
Skip to first unread message

David Ranch

unread,
Mar 8, 2016, 8:00:28 PM3/8/16
to pat-users
Hello Pat Dev-team,

I'm working on adding Pat into my Centos6 documentation available at http://www.trinityos.com/HAM/CentosDigitalModes/hampacketizing-centos.html including making it into an RPM.  Unfortunately, there are some missing details to get things completed:

   1. I've installed golang v1.5.1 from the EPEL repo but per the pat archive's make.bash file, it seems Go >= 1.5 is required.  I didn't see this minimum Go version mentioned anywhere

   2. Once I download the Pat sources, there aren't  any instructions on what to do next.  There is the included make.bash script but it seems to be focused on Git downloaded sources (I downloaded the v0.1.0.tar.gz file directly).  Maybe these sources are supposed to be placed in my Go workspace?  I'm new to Go.  If this is true, where should files go that should be runable by ALL users on this Linux machine

   3. In the Getting Started guide, it says to run "pat configure" but that doesn't work.  I would assume I need to do something like "go pat configure" but that doesn't work either.  What's missing here?  Maybe it's something like "go install $GOPATH/pat-0.1.0/main.go but that fails out as well.

   4. In future releases, I encourage you to rename the tar.gz archive something like pat-0.1.0.tar.gz.  This aligns to proper package management systems like RPM, DEB, etc.

   5. There is mention that Pat can work with Winmor and potentially ARDOP.  True?  If so, There needs to be a little documentation telling people what to do to make this work

--David
KI6ZHD

Martin Hebnes Pedersen

unread,
Mar 9, 2016, 5:00:33 AM3/9/16
to pat-...@googlegroups.com
On 09/03/16 02:00, David Ranch wrote:
> Hello Pat Dev-team,
>
> I'm working on adding Pat into my Centos6 documentation available at
> http://www.trinityos.com/HAM/CentosDigitalModes/hampacketizing-centos.html
> including making it into an RPM.

That's great David!

The repository already have .deb scripts (debian/) and osx packager
config (osx/). Would be great to include your RPM work into the
repository as well, and maybe provide RPM packages in future releases :)

First of, let me just apologize for the missing instructions on building
from source. The project just recently moved into it's own repository.
The old repository (github.com/la5nta/wl2k-go) have a wiki page with
build instructions, but the build process changed when it was moved.


> Unfortunately, there are some missing details to get things completed:
>
> 1. I've installed golang v1.5.1 from the EPEL repo but per the pat
> archive's make.bash file, it seems Go >= 1.5 is required. I didn't
> see this minimum Go version mentioned anywhere

Go 1.5 is one of the new requirements introduced when Pat got it's own
repository. Go 1.5 introduces a dependency vendoring mechanism used by
Pat. This should definitely be mentioned in the build instructions,
thanks for pointing it out.

All official releases is built with the latest stable Go distribution
(currently 1.6).


>
> 2. Once I download the Pat sources, there aren't any instructions
> on what to do next. There is the included make.bash script but it
> seems to be focused on Git downloaded sources (I downloaded the
> v0.1.0.tar.gz file directly). Maybe these sources are supposed to be
> placed in my Go workspace? I'm new to Go. If this is true, where
> should files go that should be runable by ALL users on this Linux machine

Yes, the source code must be placed under
$GOPATH/src/github.com/la5nta/pat/. See
https://github.com/golang/go/wiki/GOPATH for more info on this topic.

The Go toolchain have this all sorted out. "go get" will fetch the
latest release of Pat, place it under $GOPATH/src/github.com/la5nta/pat
(including all dependencies):
go get github.com/la5nta/pat

The executable will be installed to $GOPATH/bin/.

However, the standard "go get" does have some limitations that I've
resolved by supplying the make.bash-script. This is how I build a
release for Linux with libax25 support:

Download the latest stable release sources:
- go get -d -v github.com/la5nta/pat (download only, verbose. This
uses git clone.)

Build:
- cd $GOPATH/src/github.com/la5nta/pat
- TAGS="libax25" ./make.bash

The newly built executable "pat" is the file that should go into your
RPM. Please not, with TAGS="libax25", you'll have to list libax25 as a
dependency.


>
> 3. In the Getting Started guide, it says to run "pat configure" but
> that doesn't work. I would assume I need to do something like "go pat
> configure" but that doesn't work either. What's missing here? Maybe
> it's something like "go install $GOPATH/pat-0.1.0/main.go but that
> fails out as well.

The Getting Started guide assumes Pat is installed and available in
$PATH. Sorry for not making it clear in the guide, I'll fix that :)


>
> 4. In future releases, I encourage you to rename the tar.gz archive
> something like pat-0.1.0.tar.gz. This aligns to proper package
> management systems like RPM, DEB, etc.

The source code archives is basically just a archived snapshot of the
repository automatically created by github when you tag a release.

Unfortunately, the name is taken directly from the git tag. Changing the
naming conventions of a the git tags seems to be a bit excessive, see
http://stackoverflow.com/questions/2006265/is-there-a-standard-naming-convention-for-git-tags
for a discussion on that topic.


>
> 5. There is mention that Pat can work with Winmor and potentially
> ARDOP. True? If so, There needs to be a little documentation telling
> people what to do to make this work

Yes, Pat supports both WINMOR and ARDOP. There is some brief
"documentation" on how to set up winmor at
https://github.com/la5nta/pat/wiki/The-command-line-interface#winmor-configuration.

I will open a couple of issues for this on github, thanks :)

--
Martin

LA5NTA

unread,
Mar 9, 2016, 12:06:24 PM3/9/16
to pat-users
onsdag 9. mars 2016 02.00.28 UTC+1 skrev David Ranch følgende:
   5. There is mention that Pat can work with Winmor and potentially ARDOP.  True?  If so, There needs to be a little documentation telling people what to do to make this work


I have added a Wiki page on how to get started with Winmor: https://github.com/la5nta/pat/wiki/WINMOR-TNC#running-winmor-under-wine

Hope this is useful :)

PS: A "building from source" page is under way, I'll post it in a couple of hours.

-- 
Martin

Martin Hebnes Pedersen

unread,
Mar 9, 2016, 12:08:00 PM3/9/16
to pat-...@googlegroups.com
On 09/03/16 18:06, LA5NTA wrote:
> I have added a Wiki page on how to get started with
> Winmor: https://github.com/la5nta/pat/wiki/WINMOR-TNC#running-winmor-under-wine

Correction: https://github.com/la5nta/pat/wiki/WINMOR-TNC

Sorry :)

David Ranch

unread,
Mar 9, 2016, 7:18:52 PM3/9/16
to pat-users

Hello Martin,

Thanks for the reply.

One initial question that I meant to ask:  What does the name "Pat" stand for?  The previous wl2k-go name was quite obvious.



The repository already have .deb scripts (debian/) and osx packager
config (osx/). Would be great to include your RPM work into the
repository as well, and maybe provide RPM packages in future releases :)

I'd be happy to provide SPEC files and work on getting various Fedora/EPEL repos to package your project.

 
First of, let me just apologize for the missing instructions on building
from source. The project just recently moved into it's own repository.

Ha.. no problem and I imagined as such.  I just wanted to make sure you and your team was aware that the current state of the project wasn't consumable by a Go newbie.

 
The old repository (github.com/la5nta/wl2k-go) have a wiki page with
build instructions, but the build process changed when it was moved.

It seems that Pat is an application built from the sources of wl2k-go but is there any future for wk2k-go going forward?  Anything interesting going on in that project that "Pat" people should be aware of?

 

Go 1.5 is one of the new requirements introduced when Pat got it's own
repository. Go 1.5 introduces a dependency vendoring mechanism used by
Pat. This should definitely be mentioned in the build instructions,
thanks for pointing it out.
 

All official releases is built with the latest stable Go distribution
(currently 1.6).

Ok though currently, Centos6 only has Go 1.5.1 available.  Unless you really have to do it, keeping things running under Go 1.5.1 would be helpful for us Centos folk.

 
>    2. Once I download the Pat sources, there aren't  any instructions
> on what to do next.  There is the included make.bash script but it
> seems to be focused on Git downloaded sources (I downloaded the
> v0.1.0.tar.gz file directly).  Maybe these sources are supposed to be
> placed in my Go workspace?  I'm new to Go.  If this is true, where
> should files go that should be runable by ALL users on this Linux machine

Yes, the source code must be placed under
$GOPATH/src/github.com/la5nta/pat/. See
https://github.com/golang/go/wiki/GOPATH for more info on this topic.

Ok.. but you missed my final question above.. how would I install things for all users on a system?  Having GOPATH=$HOME/work/src/github.com/la5nta/pat will only make things available to ME.

 
The Go toolchain have this all sorted out. "go get" will fetch the
latest release of Pat, place it under $GOPATH/src/github.com/la5nta/pat
(including all dependencies):
go get github.com/la5nta/pat

So are you saying that downloading Pat should be done via this mechanism and NOT via the .tar.gz approach as posted on your getpat.io site?


 
However, the standard "go get" does have some limitations that I've
resolved by supplying the make.bash-script. This is how I build a
release for Linux with libax25 support:

Ok.. I'm definitely interested in using Pat with libax25 so I'll go that route.  I also see that this script is using Perl so I'll have to add that to the RPM SPEC file requirements.

 

Download the latest stable release sources:
   - go get -d -v github.com/la5nta/pat (download only, verbose. This
uses git clone.)

So git is also an RPM dependency


 

Build:
   - cd $GOPATH/src/github.com/la5nta/pat
   - TAGS="libax25" ./make.bash

I guess libax25 is also a dependency.  This should be documented somewhere so people looking for AX.25 support know what to have installed before hand.

 
>    3. In the Getting Started guide, it says to run "pat configure" but
> that doesn't work.  I would assume I need to do something like "go pat
> configure" but that doesn't work either. What's missing here?  Maybe
> it's something like "go install $GOPATH/pat-0.1.0/main.go but that
> fails out as well.

The Getting Started guide assumes Pat is installed and available in
$PATH. Sorry for not making it clear in the guide, I'll fix that :)

Do I really need to put Pat in my path?  I really hate adding stuff to paths as it really slows things down.  My ideal setup would be that once Pat is compiled, I would put it's binaries in say /usr/local/bin per an RPM install.

 
The source code archives is basically just a archived snapshot of the
repository automatically created by github when you tag a release.

Unfortunately, the name is taken directly from the git tag. Changing the
naming conventions of a the git tags seems to be a bit excessive, see
http://stackoverflow.com/questions/2006265/is-there-a-standard-naming-convention-for-git-tags
for a discussion on that topic.

Ok.. understood.  Just also note that every distro packager will have to download your v0.1.0.tar.gz file and rename it to pat-0.1.0.tar.gz to match almost any of the modern packaging systems.  It's also strange that the outside file is v0.1.0.tar.gz but inside it, it's using a more helpful pat-0.1.0/ directory.


 
Yes, Pat supports both WINMOR and ARDOP. There is some brief
"documentation" on how to set up winmor at
https://github.com/la5nta/pat/wiki/The-command-line-interface#winmor-configuration.

Right.. I saw that but only talking about port numbers isn't enough for most people. 

   - Will Pat auto-start "wine winmor"?
   - Will Pat auto-start "wine ardopc"?

Btw... what version of Hamlib are you supporting?  2.1?  3.0?   I know that 3.1 is due soon that integrates a lot of changes from the WSJT-X program.  You also might consider adding support for FLrig which offers it's own streamlined set of controlled rigs with a very nice XML interface.

 --David
KI6ZHD

David Ranch

unread,
Mar 9, 2016, 7:34:02 PM3/9/16
to pat-users
Me again..

Though I expect this might be a way that Centos/EPEL has packaged up golang and made things various components (I can email you the list if you'd like):

   $ yum search golang | grep -c ^golang
   337

the newly created "building from source" step fails:

   $ go get -u github.com/la5nta/pat
   # cd .; git --git-dir=/home/dranch/work/src/github.com/la5nta/pat/.git submodule update --init --recursive
   No submodule mapping found in .gitmodules for path 'vendor/github.com/bndr/gotabulate'
   package github.com/la5nta/pat: exit status 1

Of those 337 matches, I don't see anything that matches:

   $ yum search golang | grep tabulate
   $ yum search golang | grep tabul
   $ yum search golang | grep bndr


It seems that Go has modules much like Perl modules, Ruby gems, etc.  Seems some additional hand holding is required to create a viable Pat / Go toolchain from scratch.

--David
KI6ZHD

David Ranch

unread,
Mar 9, 2016, 7:58:30 PM3/9/16
to pat-users

So maybe the Wiki's "easy way" only works with Golang v1.6 so I then tried the hard way.  Though getting the Git modules via this method was working very well (ugh.. lots of dependencies here.. 14MB worth),  it seemingly died here after like 20minutes of waiting:
--
git submodule update --init --recursive
.
.
.
Submodule path 'vendor/golang.org/x/crypto': checked out '5dc8cb4b8a8eb076cbb5a06bc3b8682c15bdbbd3'
Initialized empty Git repository in /home/dranch/work/src/github.com/la5nta/pat/vendor/golang.org/x/net/.git/
remote: Total 4631 (delta 2454), reused 4631 (delta 2454)
Receiving objects: 100% (4631/4631), 5.81 MiB | 602 KiB/s, done.
Resolving deltas: 100% (2454/2454), done.
Submodule path 'vendor/golang.org/x/net': checked out '08f168e593b5aab61849054b77981de812666697'
Initialized empty Git repository in /home/dranch/work/src/github.com/la5nta/pat/vendor/golang.org/x/text/.git/
remote: Sending approximately 12.94 MiB ...
remote: Total 2468 (delta 1288), reused 2468 (delta 1288)
Receiving objects: 100% (2468/2468), 12.94 MiB | 606 KiB/s, done.
Resolving deltas: 100% (1288/1288), done.
Submodule path 'vendor/golang.org/x/text': checked out 'a71fd10341b064c10f4a81ceac72bcf70f26ea34'
Initialized empty Git repository in /home/dranch/work/src/github.com/la5nta/pat/vendor/gopkg.in/fsnotify.v1/.git/


^c
--

Re-running the above commend hung again at the same fsnotify.v1 package (very unusual for Git).  Seems like the Github or Golang repo might be having an issue here?


Any thoughts on how to proceed?

--David

Martin Hebnes Pedersen

unread,
Mar 10, 2016, 7:00:13 AM3/10/16
to pat-...@googlegroups.com
On 10/03/16 01:18, David Ranch wrote:
One initial question that I meant to ask:  What does the name "Pat" stand for?  The previous wl2k-go name was quite obvious.

Hehe, that I have not figured out yet. Suggestions? I got the name from Postman Pat... but I'm sure we can find an acronym there :p Portable Amateur Telegram? ...I don't know ;)




The repository already have .deb scripts (debian/) and osx packager
config (osx/). Would be great to include your RPM work into the
repository as well, and maybe provide RPM packages in future releases :)

I'd be happy to provide SPEC files and work on getting various Fedora/EPEL repos to package your project.

Excellent! I think maybe it's a bit too early for Fedora/EPEL and debian/ubuntu apt repos. But if we could release RPMs for Fedora on github, that would be awesome :)




It seems that Pat is an application built from the sources of wl2k-go but is there any future for wk2k-go going forward?  Anything interesting going on in that project that "Pat" people should be aware of?

Oh yes, wl2k-go will definitely continue. wl2k-go was from the early beginning meant as a project for various Go libraries implementing winlink-functionality. It's basically a winlink framework for Go.

Pat started as a sandbox application so I could test the Go libraries in wl2k-go, but over time it got more and more usable as a winlink client. Pat relies heavily on wl2k-go for it's functionality, it's the main dependency providing transport drivers (winmor, telnet, ax25, ardop), FBB-protocol implementation, mailbox-implementation ++.



Ok though currently, Centos6 only has Go 1.5.1 available.  Unless you really have to do it, keeping things running under Go 1.5.1 would be helpful for us Centos folk.

My plan is to keep supporting Go 1.5 for as long as possible. I realize most Linux distributions can't keep up with Go's release cycle (6 months). Until a few weeks ago, the requirement was >= Go 1.3 (released 2014/06/18). But the benefits of 1.5's new dependency management (the "vendor experiment") I figured it was worth it.



Ok.. but you missed my final question above.. how would I install things for all users on a system?  Having GOPATH=$HOME/work/src/github.com/la5nta/pat will only make things available to ME.

When compiled, Pat is a self-contained binary (with the exception of libax25 and libhamlib shared libraries). I suggest you install it to either /usr/bin/pat or /usr/local/bin/pat.



 
The Go toolchain have this all sorted out. "go get" will fetch the
latest release of Pat, place it under $GOPATH/src/github.com/la5nta/pat
(including all dependencies):
go get github.com/la5nta/pat

So are you saying that downloading Pat should be done via this mechanism and NOT via the .tar.gz approach as posted on your getpat.io site?

No, the intended way of downloading Pat is grabbing a suitable binary package from the releases page. This is what I intended. As I said earlier, the source code archives on github.com/la5nta/pat/releases is added automatically by github. My intention is to use /releases to distribute binary releases primarily.

A pre-compiled linux Go binary will run on virtually any distro because nearly all deps are statically linked. I guess what I'm saying is that Pat users should not need to compile from source, but if they do they should/could do it as any other contributor/developer would (either by git clone manual or with go get), to keep things simple.

In the next release, I plan on adding generic Linux binaries (in addition to the .deb files) + windows-binaries. Hopefully this will make sure most user can use Pat without compiling the source code.

Having said all this, I thing it's important that advanced users are able to easily compile the project from source, so contributors feel welcome :)


 
However, the standard "go get" does have some limitations that I've
resolved by supplying the make.bash-script. This is how I build a
release for Linux with libax25 support:

Ok.. I'm definitely interested in using Pat with libax25 so I'll go that route.  I also see that this script is using Perl so I'll have to add that to the RPM SPEC file requirements.

Yes, using make.bash also ensures that the git revision sha is included in the build. This is important for debugging reasons.



Download the latest stable release sources:
   - go get -d -v github.com/la5nta/pat (download only, verbose. This
uses git clone.)

So git is also an RPM dependency

I don't know how RPM package maintaining works, but do you define how the source code is downloaded? I regard tools needed to download the sources to be outside the build dependency list. I guess it depends on your tools.


I guess libax25 is also a dependency.  This should be documented somewhere so people looking for AX.25 support know what to have installed before hand.

Yes, I'll have to include this in the wiki page on ax25. Thanks :)


Do I really need to put Pat in my path?  I really hate adding stuff to paths as it really slows things down.  My ideal setup would be that once Pat is compiled, I would put it's binaries in say /usr/local/bin per an RPM install.

If /usr/local/bin is in your PATH already, then installing it there would be fine :)



Ok.. understood.  Just also note that every distro packager will have to download your v0.1.0.tar.gz file and rename it to pat-0.1.0.tar.gz to match almost any of the modern packaging systems.  It's also strange that the outside file is v0.1.0.tar.gz but inside it, it's using a more helpful pat-0.1.0/ directory.

Yes I understand. I do however don't thing it's this simple. Debian for instance, expects "name_1.0.orig.tar.gz" (https://wiki.debian.org/IntroDebianPackaging#Step_1:_Rename_the_upstream_tarball).

Yes I agree that the filename and directory structure is strange, but this a github issue and the problem is not isolated to Pat:
https://github.com/docker/docker/releases
https://github.com/torvalds/linux/releases
https://github.com/sass/libsass/releases

We could explicitly upload a complete source tarball including all submodules in future releases, but until the release process is fully automated I would like to focus on packages that most users look for:
- Binary release for debian-based distros (.deb)
- Binary release for fedora/CentOS/SUSE
- Binary release for generic linux (.tar.gz)
- Binary release for windows (.zip)
- Binary release for os x (.pkg)
- Binary release for android (.apk)

I hope you understand :)



   - Will Pat auto-start "wine winmor"?
   - Will Pat auto-start "wine ardopc"?

No, Pat will not auto-start ardop or winmor. I won't bring up ax25 interfaces either for that matter.



Btw... what version of Hamlib are you supporting?  2.1?  3.0?   I know that 3.1 is due soon that integrates a lot of changes from the WSJT-X program.  You also might consider adding support for FLrig which offers it's own streamlined set of controlled rigs with a very nice XML interface.

Pat interacts with hamlib in two ways: tcp (rigctld) or direct C bindings. The binary releases only support rigctld currently (to minimize the use of shared libraries).

It supports rigctld >=1.2. Since it supports 3.0 and 3.1 is not a major release, I think it's safe to assume that there won't be any breaking API changes.

As for the C-bindings, I honestly does not know. I would assume hamlib's C API is stable enough that breaking changes in the limited feature-set used would be rare. If you do test it, please share your experience :)

Martin Hebnes Pedersen

unread,
Mar 10, 2016, 7:02:16 AM3/10/16
to pat-...@googlegroups.com
David, if you want to compile with Go 1.5 you'll have to export GO15VENDOREXPERIMENT=1 as mentioned on the wiki page. Did you do that?

Regarding the dependency list. You mention that you needed to add git and perl to the RPM dependency list. These are only build dependencies. I suggest you take a look at the debian package (https://github.com/la5nta/pat/tree/master/debian/) for details on how Pat has been packaged for debian/ubuntu/mint. The debian/control lists runtime and build dependencies (perl is missing). debian/rules is the actual Makefile.

Here is the released .deb's content:
$ dpkg -c pat_0.1.0_linux_amd64.deb
drwxr-xr-x root/root         0 2016-03-06 14:16 ./
drwxr-xr-x root/root         0 2016-03-06 14:16 ./usr/
drwxr-xr-x root/root         0 2016-03-06 14:16 ./usr/bin/
-rwxr-xr-x root/root   9920408 2016-03-06 14:16 ./usr/bin/pat
drwxr-xr-x root/root         0 2016-03-06 14:16 ./usr/share/
drwxr-xr-x root/root         0 2016-03-06 14:16 ./usr/share/pat/
drwxr-xr-x root/root         0 2016-03-06 14:16 ./usr/share/pat/bin/
-rwxr-xr-x root/root      2068 2016-03-06 14:16 ./usr/share/pat/bin/axup
drwxr-xr-x root/root         0 2016-03-06 14:16 ./usr/share/pat/ax25/
-rw-r--r-- root/root       271 2016-03-06 14:16 ./usr/share/pat/ax25/ax25.default
-rw-r--r-- root/root       621 2016-03-06 14:16 ./usr/share/pat/ax25/soundmodem-example.conf
-rw-r--r-- root/root       196 2016-03-06 14:16 ./usr/share/pat/ax25/README.systemd
-rw-r--r-- root/root       214 2016-03-06 14:16 ./usr/share/pat/ax25/ax25.service
-rw-r--r-- root/root       163 2016-03-06 14:16 ./usr/share/pat/ax25/mheardd.service
-rwxr-xr-x root/root       290 2016-03-06 14:16 ./usr/share/pat/ax25/install-systemd-ax25-unit.bash
drwxr-xr-x root/root         0 2016-03-06 14:16 ./lib/
drwxr-xr-x root/root         0 2016-03-06 14:16 ./lib/systemd/
drwxr-xr-x root/root         0 2016-03-06 14:16 ./lib/systemd/system/
-rw-r--r-- root/root       234 2016-03-06 14:16 ./lib/systemd/system/pat@.service

The darwin/osx .pkg's content is only /usr/bin/pat.


On 10/03/16 01:58, David Ranch wrote:

So maybe the Wiki's "easy way" only works with Golang v1.6 so I then tried the hard way.  Though getting the Git modules via this method was working very well (ugh.. lots of dependencies here.. 14MB worth),  it seemingly died here after like 20minutes of waiting:
--
git submodule update --init --recursive

Re-running the above commend hung again at the same fsnotify.v1 package (very unusual for Git).  Seems like the Github or Golang repo might be having an issue here?


Any thoughts on how to proceed?

Could it have been a temporary issue with fsnotify's repository? Or maybe a temporary network issue? I tested it now: git submodule update --init --recursive in a clean Pat clone takes ~61s and did succeed twice here.

--
Martin

David Ranch

unread,
Mar 29, 2016, 2:19:12 PM3/29/16
to pat-users

I have tracked down this specific fsnotify issue to a GIT issue:

   https://github.com/spf13/hugo/issues/297

According to this thread, Git 1.7.1 on Centos 6.5 fails (does not follow 301 redirects) but Git 1.9.1 works.  Specific manual work arounds are mentioned but it might be worth mentioning this issue on the Wiki for some users that might be using the broken version of Git.

--David

Martin Hebnes Pedersen

unread,
Mar 29, 2016, 6:00:46 PM3/29/16
to pat-...@googlegroups.com

Thanks for tracking this one down!

I have opened an issue and plan on including a fix in the upcoming release (v0.1.2).

https://github.com/la5nta/pat/issues/31

--
You received this message because you are subscribed to the Google Groups "pat-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pat-users+...@googlegroups.com.
To post to this group, send email to pat-...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/pat-users/6275105a-9eb9-4e85-a83b-9c66fe6cff9e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages