compilation failures on Debian Testing

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

compilation failures on Debian Testing

Tyler Smith
Hi,

I'm trying to install Micromanager on Debian. I've been following the instructions, but have installed ImageJ from the Debian repositories. Here's what I've done:

mkdir mm
svn co https://valelab4.ucsf.edu/svn/micromanager2/trunk/ micro-manager1.4
svn co https://valelab4.ucsf.edu/svn/3rdpartypublic/

## repeated 3 times:
svn cleanup 3rdpartypublic/
svn update 3rdpartypublic/

cd micro-manager1.4/
./autogen.sh

./configure --enable-imagej-plugin=/usr/bin/imagej
## failed with:
configure: error: use --with-ij-jar=FILE to specify where to find ij.jar

## tried this:
./configure --enable-imagej-plugin=/usr/bin/imagej --with-ij-jar=/usr/share/java/ij.jar
 
## that worked so proceeded:
make fetchdeps

## BUILD SUCCESSFUL

make

## FAILED:
...
Makefile:527: recipe for target 'WieneckeSinske.lo' failed
make[2]: *** [WieneckeSinske.lo] Error 1
make[2]: Leaving directory '/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters/WieneckeSinske'
Makefile:622: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters'
Makefile:519: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

## tried again with out the plugin option:
./configure --with-ij-jar=/usr/share/java/ij.jar ## OK
make fetchdeps ## OK
make

## FAILED:
...
Makefile:539: recipe for target 'FakeCamera.lo' failed
make[2]: *** [FakeCamera.lo] Error 1
make[2]: Leaving directory '/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters/FakeCamera'
Makefile:622: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters'
Makefile:519: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

I'm not sure what else to try, or where to look for troubleshooting. Thanks for your help!

Tyler
Debian 4.14.17-1 (2018-02-14) x86_64 GNU/Linux
--
plantarum.ca

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: compilation failures on Debian Testing

Kyle Douglass
Hi Tyler,

The Linux build is currently broken but can be fixed with a rather
simple patch to two .cpp files in the WieneckeSinske device adapter folder:

https://github.com/micro-manager/micro-manager/pull/613

I'm not sure about the FakeCamera device adapter though...

Cheers,

Kyle


On 03/14/2018 05:11 PM, Tyler Smith wrote:

> Hi,
>
> I'm trying to install Micromanager on Debian. I've been following the instructions, but have installed ImageJ from the Debian repositories. Here's what I've done:
>
> mkdir mm
> svn co https://valelab4.ucsf.edu/svn/micromanager2/trunk/ micro-manager1.4
> svn co https://valelab4.ucsf.edu/svn/3rdpartypublic/
>
> ## repeated 3 times:
> svn cleanup 3rdpartypublic/
> svn update 3rdpartypublic/
>
> cd micro-manager1.4/
> ./autogen.sh
>
> ./configure --enable-imagej-plugin=/usr/bin/imagej
> ## failed with:
> configure: error: use --with-ij-jar=FILE to specify where to find ij.jar
>
> ## tried this:
> ./configure --enable-imagej-plugin=/usr/bin/imagej --with-ij-jar=/usr/share/java/ij.jar
>  
> ## that worked so proceeded:
> make fetchdeps
>
> ## BUILD SUCCESSFUL
>
> make
>
> ## FAILED:
> ...
> Makefile:527: recipe for target 'WieneckeSinske.lo' failed
> make[2]: *** [WieneckeSinske.lo] Error 1
> make[2]: Leaving directory '/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters/WieneckeSinske'
> Makefile:622: recipe for target 'all-recursive' failed
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory '/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters'
> Makefile:519: recipe for target 'all-recursive' failed
> make: *** [all-recursive] Error 1
>
> ## tried again with out the plugin option:
> ./configure --with-ij-jar=/usr/share/java/ij.jar ## OK
> make fetchdeps ## OK
> make
>
> ## FAILED:
> ...
> Makefile:539: recipe for target 'FakeCamera.lo' failed
> make[2]: *** [FakeCamera.lo] Error 1
> make[2]: Leaving directory '/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters/FakeCamera'
> Makefile:622: recipe for target 'all-recursive' failed
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory '/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters'
> Makefile:519: recipe for target 'all-recursive' failed
> make: *** [all-recursive] Error 1
>
> I'm not sure what else to try, or where to look for troubleshooting. Thanks for your help!
>
> Tyler
> Debian 4.14.17-1 (2018-02-14) x86_64 GNU/Linux

--
Kyle M. Douglass, PhD
Post-doctoral researcher
The Laboratory of Experimental Biophysics
EPFL, Lausanne, Switzerland
http://kmdouglass.github.io
http://leb.epfl.ch


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: compilation failures on Debian Testing

Tyler Smith
On Wed, Mar 14, 2018, at 12:20 PM, Kyle Douglass wrote:
> Hi Tyler,
>
> The Linux build is currently broken but can be fixed with a rather
> simple patch to two .cpp files in the WieneckeSinske device adapter folder:
>
> https://github.com/micro-manager/micro-manager/pull/613
>
> I'm not sure about the FakeCamera device adapter though...
>

I manually made your changes then did `make clean` and rebuilt with the plugin option. Still getting stuck on FakeCaemera.lo.

Best,

Tyler

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: compilation failures on Debian Testing

Kyle Douglass
Hi Tyler,

(Sorry but I am on a web client and can't easily bottom post at the moment).

Are you building with OpenCV and have it configured correctly? I looked at the Makefile.am file inside the DeviceAdapters folder and it looks like FakeCamera requires it.

You could try hacking Autotools to skip the FakeCamera for now. Try removing the line $(FAKECAMERA) \ from the Makefile.am file inside DeviceAdapters/. I have not tried this, so I can't guarantee it will work.

Do you have more information on the error message than what you posted in your original e-mail? I don't see what the explicit error message is that is causing the build of this device adapter to fail.

Best,
Kyle

Dr. Kyle M. Douglass
Post-doctoral Researcher
EPFL - The Laboratory of Experimental Biophysics
http://leb.epfl.ch/
http://kmdouglass.github.io

________________________________________
From: Tyler Smith <[hidden email]>
Sent: Wednesday, March 14, 2018 5:33 PM
To: [hidden email]
Subject: Re: [micro-manager-general] compilation failures on Debian Testing

On Wed, Mar 14, 2018, at 12:20 PM, Kyle Douglass wrote:
> Hi Tyler,
>
> The Linux build is currently broken but can be fixed with a rather
> simple patch to two .cpp files in the WieneckeSinske device adapter folder:
>
> https://github.com/micro-manager/micro-manager/pull/613
>
> I'm not sure about the FakeCamera device adapter though...
>

I manually made your changes then did `make clean` and rebuilt with the plugin option. Still getting stuck on FakeCaemera.lo.

Best,

Tyler

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: compilation failures on Debian Testing

Tyler Smith
On Wed, Mar 14, 2018, at 2:16 PM, Kyle Michael Douglass wrote:
> Hi Tyler,
>
> (Sorry but I am on a web client and can't easily bottom post at the moment).

No problem ;)
 
> Are you building with OpenCV and have it configured correctly? I looked
> at the Makefile.am file inside the DeviceAdapters folder and it looks
> like FakeCamera requires it.

I'm not sure what OpenCV is. I listed all the commands I have run, the only thing missing is adding a few of the listed dependencies via aptitude. If OpenCV requires additional config at my end, I haven't done it.

> Do you have more information on the error message than what you posted
> in your original e-mail? I don't see what the explicit error message is
> that is causing the build of this device adapter to fail.

I'm not sure how much is relevant, but here's everything from the beginning of FakeCamera. Let me know if you spot anything helpful:

Making all in FakeCamera
make[2]: Entering directory '/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters/FakeCamera'
/bin/bash ../libtool  --tag=CXX   --mode=compile g++ -DPACKAGE_NAME=\"Micro-Manager\" -DPACKAGE_TARNAME=\"micro-manager\" -DPACKAGE_VERSION=\"1.4\" -DPACKAGE_STRING=\"Micro-Manager\ 1.4\" -DPACKAGE_BUGREPORT=\"[hidden email]\" -DPACKAGE_URL=\"\" -DPACKAGE=\"micro-manager\" -DVERSION=\"1.4\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_BOOST=/\*\*/ -DHAVE_BOOST_THREAD=/\*\*/ -DHAVE_BOOST_ASIO=/\*\*/ -DHAVE_BOOST_SYSTEM=/\*\*/ -DHAVE_BOOST_CHRONO=/\*\*/ -DHAVE_BOOST_DATE_TIME=/\*\*/ -DHAVE__BOOL=1 -DHAVE_STDBOOL_H=1 -DSTDC_HEADERS=1 -DHAVE_MEMSET=1 -I.  -I/usr/include/opencv  -I/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters/../MMDevice -pthread -I/usr/include  -g -O2 -MT FakeCamera.lo -MD -MP -MF .deps/FakeCamera.Tpo -c -o FakeCamera.lo FakeCamera.cpp
libtool: compile:  g++ -DPACKAGE_NAME=\"Micro-Manager\" -DPACKAGE_TARNAME=\"micro-manager\" -DPACKAGE_VERSION=\"1.4\" "-DPACKAGE_STRING=\"Micro-Manager 1.4\"" -DPACKAGE_BUGREPORT=\"[hidden email]\" -DPACKAGE_URL=\"\" -DPACKAGE=\"micro-manager\" -DVERSION=\"1.4\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" "-DHAVE_BOOST=/**/" "-DHAVE_BOOST_THREAD=/**/" "-DHAVE_BOOST_ASIO=/**/" "-DHAVE_BOOST_SYSTEM=/**/" "-DHAVE_BOOST_CHRONO=/**/" "-DHAVE_BOOST_DATE_TIME=/**/" -DHAVE__BOOL=1 -DHAVE_STDBOOL_H=1 -DSTDC_HEADERS=1 -DHAVE_MEMSET=1 -I. -I/usr/include/opencv -I/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters/../MMDevice -pthread -I/usr/include -g -O2 -MT FakeCamera.lo -MD -MP -MF .deps/FakeCamera.Tpo -c FakeCamera.cpp  -fPIC -DPIC -o .libs/FakeCamera.o
In file included from /home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters/../MMDevice/MMDevice.h:49:0,
                 from /home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters/../MMDevice/DeviceBase.h:30,
                 from FakeCamera.h:28,
                 from FakeCamera.cpp:24:
/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters/../MMDevice/ImageMetadata.h:308:58: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
    MetadataSingleTag GetSingleTag(const char* key) const throw (MetadataKeyError)
                                                          ^~~~~
/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters/../MMDevice/ImageMetadata.h:315:56: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
    MetadataArrayTag GetArrayTag(const char* key) const throw (MetadataKeyError)
                                                        ^~~~~
In file included from FakeCamera.cpp:24:0:
FakeCamera.h:84:66: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
  std::string parseUntil(const char*& it, const char delim) const throw (parse_error);
                                                                  ^~~~~
FakeCamera.h:86:60: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
  std::pair<int, int> parsePrecision(const char*& it) const throw (parse_error);
                                                            ^~~~~
FakeCamera.h:89:48: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
  std::string parseMask(std::string mask) const throw(error_code);
                                                ^~~~~
FakeCamera.cpp:400:77: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
 std::string FakeCamera::parseUntil(const char*& it, const char delim) const throw (parse_error)
                                                                             ^~~~~
FakeCamera.cpp:600:71: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
 std::pair<int, int> FakeCamera::parsePrecision(const char*& it) const throw (parse_error)
                                                                       ^~~~~
FakeCamera.cpp:645:59: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
 std::string FakeCamera::parseMask(std::string mask) const throw(error_code)
                                                           ^~~~~
FakeCamera.cpp: In member function ‘void FakeCamera::getImg() const’:
FakeCamera.cpp:658:63: error: ‘imread’ is not a member of ‘cv’
  cv::Mat img = path == lastFailedPath_ ? lastFailedImg_ : cv::imread(path, cv::IMREAD_ANYDEPTH | (color_ ? cv::IMREAD_COLOR : cv::IMREAD_GRAYSCALE));
                                                               ^~~~~~
FakeCamera.cpp:658:63: note: suggested alternative: ‘read’
  cv::Mat img = path == lastFailedPath_ ? lastFailedImg_ : cv::imread(path, cv::IMREAD_ANYDEPTH | (color_ ? cv::IMREAD_COLOR : cv::IMREAD_GRAYSCALE));
                                                               ^~~~~~
                                                               read
FakeCamera.cpp:658:80: error: ‘IMREAD_ANYDEPTH’ is not a member of ‘cv’
  cv::Mat img = path == lastFailedPath_ ? lastFailedImg_ : cv::imread(path, cv::IMREAD_ANYDEPTH | (color_ ? cv::IMREAD_COLOR : cv::IMREAD_GRAYSCALE));
                                                                                ^~~~~~~~~~~~~~~
FakeCamera.cpp:658:112: error: ‘IMREAD_COLOR’ is not a member of ‘cv’
 iledPath_ ? lastFailedImg_ : cv::imread(path, cv::IMREAD_ANYDEPTH | (color_ ? cv::IMREAD_COLOR : cv::IMREAD_GRAYSCALE));
                                                                                   ^~~~~~~~~~~~
FakeCamera.cpp:658:131: error: ‘IMREAD_GRAYSCALE’ is not a member of ‘cv’
 ledImg_ : cv::imread(path, cv::IMREAD_ANYDEPTH | (color_ ? cv::IMREAD_COLOR : cv::IMREAD_GRAYSCALE));
                                                                                   ^~~~~~~~~~~~~~~~
Makefile:539: recipe for target 'FakeCamera.lo' failed
make[2]: *** [FakeCamera.lo] Error 1
make[2]: Leaving directory '/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters/FakeCamera'
Makefile:622: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/tws/research/programs/mm/micro-manager1.4/DeviceAdapters'
Makefile:519: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: compilation failures on Debian Testing

Tyler Smith
In reply to this post by Kyle Douglass
On Wed, Mar 14, 2018, at 2:16 PM, Kyle Michael Douglass wrote:
>
> You could try hacking Autotools to skip the FakeCamera for now. Try
> removing the line $(FAKECAMERA) \ from the Makefile.am file inside
> DeviceAdapters/. I have not tried this, so I can't guarantee it will
> work.

I tried that, and then it failed at the WieneckeSinske step again. So I commented out that one as well, and then make finally worked. `make install` failed though, as the configure step was pointing at the Debian executable, i.e., `/usr/bin/imagej`, and not the plugin directory.

So, I did `make clean`, repeated all steps, this time pointing to the Debian plugin directory:

    ./configure --enable-imagej-plugin=/usr/share/imagej --with-ij-jar=/usr/share/java/ij.jar

After this it compiled fine, and I could run imagej with /usr/share/imagej/mmimagej. However, when I try to select the demo config, I get an error:

Error: Failed to load hardware configuration
"/usr/share/imagej/MMConfig_demo.cfg": File open failed.

Looking into that directory, the listed file isn't present. In fact, searching for it in /usr with `find`, I don't see it anywhere.

So, next problem seems to be getting the config files installed where mm can find them? Is this a configure option, or have I broken something else?

Best,

Tyler

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: compilation failures on Debian Testing

Nico Stuurman-2
In reply to this post by Tyler Smith

On 3/14/18 12:05 PM, Tyler Smith wrote:

>
> No problem ;)
>> Are you building with OpenCV and have it configured correctly? I looked
>> at the Makefile.am file inside the DeviceAdapters folder and it looks
>> like FakeCamera requires it.
> I'm not sure what OpenCV is. I listed all the commands I have run, the
> only thing missing is adding a few of the listed dependencies via
> aptitude. If OpenCV requires additional config at my end, I haven't
> done it.
>
>                                                             ^~~~~
> FakeCamera.cpp: In member function ‘void FakeCamera::getImg() const’:
> FakeCamera.cpp:658:63: error: ‘imread’ is not a member of ‘cv’
>    cv::Mat img = path == lastFailedPath_ ? lastFailedImg_ :
> cv::imread(path, cv::IMREAD_ANYDEPTH | (color_ ? cv::IMREAD_COLOR :
> cv::IMREAD_GRAYSCALE));

There is the problem.  It looks like your system does find OpenCV, but
your version of OpenCV does not have the function imread.  I suspect
that the answer lies in this link (found through google):
http://answers.opencv.org/question/122936/library-to-link-for-imread/.

You can work around this by running configure with the flag:
--with-opencv=no

The underlying issue should be solved in the scripts creating the OPENCV
flags.  You could open an issue on the github site.

Best,

Nico

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: compilation failures on Debian Testing

Kyle Douglass
In reply to this post by Tyler Smith
Hi Tyler,

> After this it compiled fine, and I could run imagej with /usr/share/imagej/mmimagej. However, when I try to select the demo config, I get an error:
>
> Error: Failed to load hardware configuration
> "/usr/share/imagej/MMConfig_demo.cfg": File open failed.
>
> Looking into that directory, the listed file isn't present. In fact, searching for it in /usr with `find`, I don't see it anywhere.
>
> So, next problem seems to be getting the config files installed where mm can find them? Is this a configure option, or have I broken something else?

I have also encountered the issue that the demo camera configuration
file is not installed on Linux builds. It's not actually required to run
Micro-Manager, but if you want it, you can get it here:
https://micro-manager.org/wiki/File:MMConfig_Demo.cfg

I'll open an issue on Github about the missing configuration file.
Hopefully with this and Nico's comments about OpenCV you will have a
working MM Linux build. If not, write back and let us know.

Best,
Kyle

--
Kyle M. Douglass, PhD
Post-doctoral researcher
The Laboratory of Experimental Biophysics
EPFL, Lausanne, Switzerland
http://kmdouglass.github.io
http://leb.epfl.ch


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: compilation failures on Debian Testing

Tyler Smith
On Thu, Mar 15, 2018, at 4:16 AM, Kyle Douglass wrote:
> I'll open an issue on Github about the missing configuration file.
> Hopefully with this and Nico's comments about OpenCV you will have a
> working MM Linux build. If not, write back and let us know.

Ok, thanks. I seem to be up and running now. I removed the WieneckeSinske adapter, and with the opencv flag from Nico the rest works.

Best,

Tyler

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general