Package Details: e4rat-lite-git 2.7.r90.ebf7d86-2

Git Clone URL: https://aur.archlinux.org/e4rat-lite-git.git (read-only, click to copy)
Package Base: e4rat-lite-git
Description: An improved version of e4rat, a toolset to accelerate the boot process and application startups.
Upstream URL: https://github.com/LendyZhang/e4rat-lite
Licenses: GPL3
Conflicts: e4rat-lite, e4rat-preload-lite, e4rat-preload-lite-git, ureadahead
Submitter: cubethethird
Maintainer: cubethethird
Last Packager: cubethethird
Votes: 6
Popularity: 0.000003
First Submitted: 2016-07-28 01:59 (UTC)
Last Updated: 2022-03-30 00:32 (UTC)

Pinned Comments

cubethethird commented on 2016-09-13 01:51 (UTC)

This package provides some improvements over the original e4rat package, and circumvents some usability issues. To use the tools included with the package, follow the instructions upstream: https://github.com/ShyPixie/e4rat-lite#how-to-use Note that in order to use the audit tools, a kernel build with auditing support enabled is required.

Latest Comments

1 2 3 4 Next › Last »

cubethethird commented on 2023-02-02 01:38 (UTC)

I've taken another look at the patch I last added, and as far as I can tell it should be working, but I can't say for certain. We'd need to look at an output log from when it's running to get a better idea. I don't maintain the source, so it's difficult enough for me to figure out what would be the problem.

apnkpr commented on 2023-01-31 05:53 (UTC)

Hello from 2023! I have the same experience as @churro and @13905069 below. Compiles and runs fine, but doesn't write anything to the log file.

13905069 commented on 2022-05-21 18:44 (UTC) (edited on 2022-06-12 03:56 (UTC) by 13905069)

Also,it doesn't write anything to startup.log.I add "audit=1" to my kernel parameters and enable auditd service.I see it executes systemd when booting,but it seems exit after that (no error).I can't see its process after I enter desktop. These are my kernel parameters:

GRUB_CMDLINE_LINUX_DEFAULT="audit=1 init=/usr/sbin/e4rat-lite-collect loglevel=6 resume=UUID=2d870469-0638-43c2-9e9e-165ffff73608"

churro commented on 2022-04-30 02:27 (UTC)

This isn't working for me, it compiles, installs, and runs... but it doesn't actually create the log after collecting data, nor does it append to it after I created the file myself. After closing the process using -k --verbose I could see the likely culprit - it's excluding every file it's detecting for some reason:

Generating exclude file list ... 1608 open files 0 parsed from /var/lib/e4rat-lite/startup.log Total number of excluded files: 1608

So I figure because it's excluding everything, it does nothing. Is this happening to anyone else?

cubethethird commented on 2022-03-07 18:28 (UTC)

I have applied the fix as a patch. I am however not currently able to test and verify that the package still functions correctly, only that it builds correctly.

jamestansx commented on 2022-03-07 03:57 (UTC)

I think the build error is caused by this function in listener.cc:

void addSyscall(struct audit_rule_data* rule, const char* sc, int machine)
{
    int syscall_nr;
    syscall_nr = audit_name_to_syscall(sc, machine);
    if(syscall_nr == -1)
        throw std::logic_error(_("Cannot convert syscall to number"));

    audit_rule_syscall_data(rule, syscall_nr);
}

It seems that audit_rule_syscall_data is not available but using audit_rule_syscallbyname_data (ref).

This seems to fix the problem:

void addSyscall(struct audit_rule_data* rule, const char* sc, int machine)
{
    audit_rule_syscallbyname_data(rule, sc);
}

cdison commented on 2022-02-20 16:04 (UTC)

I'm having the same problem building as simona.

/home/cdison/git/e4rat-lite-git/src/e4rat-lite/src/listener.cc: In function ‘void addSyscall(audit_rule_data*, const char*, int)’:
/home/cdison/git/e4rat-lite-git/src/e4rat-lite/src/listener.cc:161:5: error: ‘audit_rule_syscall_data’ was not declared in this scope; did you mean ‘audit_rule_syscallbyname_data’?
  161 |     audit_rule_syscall_data(rule, syscall_nr);
      |     ^~~~~~~~~~~~~~~~~~~~~~~
      |     audit_rule_syscallbyname_data
make[2]: *** [src/CMakeFiles/e4rat-lite-collect.dir/build.make:104: src/CMakeFiles/e4rat-lite-collect.dir/listener.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:167: src/CMakeFiles/e4rat-lite-collect.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

simona commented on 2022-02-18 10:01 (UTC)

/home/simona/.cache/yay/e4rat-lite-git/src/e4rat-lite/src/listener.cc: In function ‘void addSyscall(audit_rule_data, constchar, int)’:
/home/simona/.cache/yay/e4rat-lite-git/src/e4rat-lite/src/listener.cc:161:5: error: ‘audit_rule_syscall_data’ was not declared in this scope; did you mean ‘audit_rule_syscallbyname_data’?
161 | audit_rule_syscall_data(rule, syscall_nr);
| ^~~~~~~~~~~~~~~~~~~~~~~
| audit_rule_syscallbyname_data
make[2]: *** [src/CMakeFiles/e4rat-lite-collect.dir/build.make:104: src/CMakeFiles/e4rat-lite-collect.dir/listener.cc.o] Errore 1

cubethethird commented on 2021-08-17 03:39 (UTC)

It would appear the upstream source has been updated, and from my testing has corrected the build errors. If any new issues crop up, feel free to comment here, however it would be wise to also notify on upstream github.

HotDogEnemy commented on 2021-06-22 12:38 (UTC)

Tried installing the package both manually and by using yay, it gives me a build() error:

-- Found Gettext: /usr/bin/msgmerge (found version "0.21") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/shivodit/e4rat-lite-git/src/build
[  5%] Building C object src/CMakeFiles/e4rat-lite-core.dir/config.c.o
[ 11%] Building CXX object src/CMakeFiles/e4rat-lite-core.dir/logging.cc.o
[ 16%] Building CXX object src/CMakeFiles/e4rat-lite-core.dir/common.cc.o
[ 22%] Building CXX object src/CMakeFiles/e4rat-lite-core.dir/fiemap.cc.o
[ 27%] Building CXX object src/CMakeFiles/e4rat-lite-core.dir/device.cc.o
In file included from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:20:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.hh:74:30: error: invalid use of incomplete type ‘class boost::shared_ptr<DevicePrivate>’
   74 | class Device: private boost::shared_ptr<DevicePrivate>
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/throw_exception.hpp:23,
                 from /usr/include/boost/regex/v5/regex_workaround.hpp:29,
                 from /usr/include/boost/regex/v5/regex.hpp:29,
                 from /usr/include/boost/regex.hpp:34,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/common.hh:27,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.hh:23,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:20:
/usr/include/boost/exception/exception.hpp:15:44: note: declaration of ‘class boost::shared_ptr<DevicePrivate>’
   15 | namespace boost { template <class T> class shared_ptr; }
      |                                            ^~~~~~~~~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In constructor ‘Device::Device(boost::filesystem::path)’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:97:14: error: type ‘boost::shared_ptr<DevicePrivate>’ is not a direct base of ‘Device’
   97 |     : boost::shared_ptr<DevicePrivate>(new DevicePrivate)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:107:9: error: ‘get’ was not declared in this scope
  107 |         get()->devno = st.st_rdev;
      |         ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:107:9: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:109:9: error: ‘get’ was not declared in this scope
  109 |         get()->devno = st.st_dev;
      |         ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:109:9: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In constructor ‘Device::Device(dev_t)’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:113:14: error: type ‘boost::shared_ptr<DevicePrivate>’ is not a direct base of ‘Device’
  113 |     : boost::shared_ptr<DevicePrivate>(new DevicePrivate)
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:115:5: error: ‘get’ was not declared in this scope
  115 |     get()->devno = dev;
      |     ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:115:5: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘void Device::parseMtabFile(const char*)’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:134:25: error: ‘get’ was not declared in this scope
  134 |         if(st.st_dev == get()->devno)
      |                         ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:134:25: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘void Device::parseMtab()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:150:13: error: ‘get’ was not declared in this scope
  150 |         if( get()->fs_name == "ext2")
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:150:13: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘boost::filesystem::path Device::getMountPoint()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:162:8: error: ‘get’ was not declared in this scope
  162 |     if(get()->mount_point.empty())
      |        ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:162:8: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:165:12: error: ‘get’ was not declared in this scope
  165 |     return get()->mount_point;
      |            ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:165:12: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘bool Device::open()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:176:45: error: ‘get’ was not declared in this scope
  176 |                     0, 0, unix_io_manager, &get()->fs))
      |                                             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:176:45: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘std::string Device::getFileSystem()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:183:8: error: ‘get’ was not declared in this scope
  183 |     if(get()->fs_name.empty())
      |        ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:183:8: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:185:12: error: ‘get’ was not declared in this scope
  185 |     return get()->fs_name;
      |            ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:185:12: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘int Device::getDevNameFromDevfs()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:205:26: error: ‘get’ was not declared in this scope
  205 |         if(st.st_rdev == get()->devno && S_ISBLK(st.st_mode))
      |                          ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:205:26: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
In file included from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:35:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘int Device::getDevNameFromMajorMinor()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:221:23: error: ‘get’ was not declared in this scope
  221 |     int major = major(get()->devno);
      |                       ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:221:23: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘std::string Device::getDeviceName()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:284:12: error: ‘get’ was not declared in this scope
  284 |     return get()->deviceName;
      |            ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:284:12: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘std::string Device::getDevicePath()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:293:8: error: ‘get’ was not declared in this scope
  293 |     if(get()->devicePath.empty())
      |        ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:293:8: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:295:12: error: ‘get’ was not declared in this scope
  295 |     return get()->devicePath;
      |            ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:295:12: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
In file included from /usr/include/ext2fs/ext2fs.h:72,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.hh:26,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:20:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘bool Device::hasExtentFeature()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:339:38: error: ‘get’ was not declared in this scope
  339 |     return EXT2_HAS_INCOMPAT_FEATURE(get()->fs->super, EXT3_FEATURE_INCOMPAT_EXTENTS);
      |                                      ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:339:38: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘__u32 Device::getBlockSize()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:434:12: error: ‘get’ was not declared in this scope
  434 |     return get()->fs->blocksize;
      |            ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:434:12: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘__u32 Device::getGroupCount()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:439:12: error: ‘get’ was not declared in this scope
  439 |     return get()->fs->group_desc_count;
      |            ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:439:12: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘__u64 Device::freeBlocksPerFlex()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:444:33: error: ‘get’ was not declared in this scope
  444 |     return FREE_BLOCKS_PER_FLEX(get()->fs);
      |                                 ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:37:36: note: in definition of macro ‘BLOCKS_PER_GROUP’
   37 | #define BLOCKS_PER_GROUP(fs)      (fs->super->s_blocks_per_group)
      |                                    ^~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:44:36: note: in expansion of macro ‘FREE_BLOCKS_PER_GROUP’
   44 | #define FREE_BLOCKS_PER_FLEX(fs)  (FREE_BLOCKS_PER_GROUP(fs) << fs->super->s_log_groups_per_flex)
      |                                    ^~~~~~~~~~~~~~~~~~~~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:444:12: note: in expansion of macro ‘FREE_BLOCKS_PER_FLEX’
  444 |     return FREE_BLOCKS_PER_FLEX(get()->fs);
      |            ^~~~~~~~~~~~~~~~~~~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:444:33: note: suggested alternatives:
  444 |     return FREE_BLOCKS_PER_FLEX(get()->fs);
      |                                 ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:37:36: note: in definition of macro ‘BLOCKS_PER_GROUP’
   37 | #define BLOCKS_PER_GROUP(fs)      (fs->super->s_blocks_per_group)
      |                                    ^~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:44:36: note: in expansion of macro ‘FREE_BLOCKS_PER_GROUP’
   44 | #define FREE_BLOCKS_PER_FLEX(fs)  (FREE_BLOCKS_PER_GROUP(fs) << fs->super->s_log_groups_per_flex)
      |                                    ^~~~~~~~~~~~~~~~~~~~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:444:12: note: in expansion of macro ‘FREE_BLOCKS_PER_FLEX’
  444 |     return FREE_BLOCKS_PER_FLEX(get()->fs);
      |            ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘__u64 Device::freeBlocksPerGroup()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:449:34: error: ‘get’ was not declared in this scope
  449 |     return FREE_BLOCKS_PER_GROUP(get()->fs);
      |                                  ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:37:36: note: in definition of macro ‘BLOCKS_PER_GROUP’
   37 | #define BLOCKS_PER_GROUP(fs)      (fs->super->s_blocks_per_group)
      |                                    ^~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:449:12: note: in expansion of macro ‘FREE_BLOCKS_PER_GROUP’
  449 |     return FREE_BLOCKS_PER_GROUP(get()->fs);
      |            ^~~~~~~~~~~~~~~~~~~~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:449:34: note: suggested alternatives:
  449 |     return FREE_BLOCKS_PER_GROUP(get()->fs);
      |                                  ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:37:36: note: in definition of macro ‘BLOCKS_PER_GROUP’
   37 | #define BLOCKS_PER_GROUP(fs)      (fs->super->s_blocks_per_group)
      |                                    ^~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:449:12: note: in expansion of macro ‘FREE_BLOCKS_PER_GROUP’
  449 |     return FREE_BLOCKS_PER_GROUP(get()->fs);
      |            ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘__u32 Device::getBlocksPerGroup()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:454:29: error: ‘get’ was not declared in this scope
  454 |     return BLOCKS_PER_GROUP(get()->fs);
      |                             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:37:36: note: in definition of macro ‘BLOCKS_PER_GROUP’
   37 | #define BLOCKS_PER_GROUP(fs)      (fs->super->s_blocks_per_group)
      |                                    ^~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:454:29: note: suggested alternatives:
  454 |     return BLOCKS_PER_GROUP(get()->fs);
      |                             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:37:36: note: in definition of macro ‘BLOCKS_PER_GROUP’
   37 | #define BLOCKS_PER_GROUP(fs)      (fs->super->s_blocks_per_group)
      |                                    ^~
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘__u32 Device::getLogGroupsPerFlex()’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:459:12: error: ‘get’ was not declared in this scope
  459 |     return get()->fs->super->s_log_groups_per_flex;
      |            ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:459:12: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc: In member function ‘bool Device::operator<(const Device&) const’:
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:464:12: error: ‘get’ was not declared in this scope
  464 |     return get()->devno < other.get()->devno;
      |            ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:464:12: note: suggested alternatives:
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:50,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:44,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from /home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:33:
/usr/include/boost/array.hpp:445:13: note:   ‘std::get’
  445 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/usr/include/boost/array.hpp:428:13: note:   ‘boost::get’
  428 |    const T &get(const boost::array<T,N> &arr) BOOST_NOEXCEPT {
      |             ^~~
/home/shivodit/e4rat-lite-git/src/e4rat-lite/src/device.cc:464:33: error: ‘const class Device’ has no member named ‘get’
  464 |     return get()->devno < other.get()->devno;
      |                                 ^~~
make[2]: *** [src/CMakeFiles/e4rat-lite-core.dir/build.make:132: src/CMakeFiles/e4rat-lite-core.dir/device.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:167: src/CMakeFiles/e4rat-lite-core.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...