Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace 'links' with 'elinks' #170

Closed
terackspace opened this issue Nov 6, 2018 · 5 comments
Closed

Replace 'links' with 'elinks' #170

terackspace opened this issue Nov 6, 2018 · 5 comments
Assignees
Milestone

Comments

@terackspace
Copy link

While adding recap to a cloud server today (default Linode.com CentOS 7 image), the dependency chain of links drags in a ton of stuff we do not need, a lot of X graphical things. Conversely, the elinks version (which I converted to years ago on my workstations) only has 2 minimal packages as deps. The elinks binary supports -dump as well, so should be a painless transition.

Supporting output - first, the yum install links list:

# yum install links
...
 Package                Arch        Version                     Repository
                                                                           Size
================================================================================
Installing:
 links                  x86_64      1:2.13-1.el7                epel      2.8 M
Installing for dependencies:
 cairo                  x86_64      1.14.8-2.el7                base      713 k
 fontconfig             x86_64      2.10.95-11.el7              base      229 k
 gdk-pixbuf2            x86_64      2.36.5-1.el7                base      567 k
 graphite2              x86_64      1.3.10-1.el7_3              base      115 k
 harfbuzz               x86_64      1.3.2-1.el7                 base      177 k
 jasper-libs            x86_64      1.900.1-31.el7              base      150 k
 jbigkit-libs           x86_64      2.0-11.el7                  base       46 k
 libXdamage             x86_64      1.1.4-4.1.el7               base       20 k
 libXext                x86_64      1.3.3-3.el7                 base       39 k
 libXfixes              x86_64      5.0.3-1.el7                 base       18 k
 libXft                 x86_64      2.3.2-2.el7                 base       58 k
 libXrender             x86_64      0.9.10-1.el7                base       26 k
 libXxf86vm             x86_64      1.1.4-1.el7                 base       18 k
 librsvg2               x86_64      2.40.16-1.el7               base      128 k
 libthai                x86_64      0.1.14-9.el7                base      187 k
 libtiff                x86_64      4.0.3-27.el7_3              base      170 k
 libwayland-client      x86_64      1.14.0-2.el7                base       32 k
 libwayland-server      x86_64      1.14.0-2.el7                base       38 k
 libxshmfence           x86_64      1.2-1.el7                   base      7.2 k
 mesa-libEGL            x86_64      17.2.3-8.20171019.el7       base       96 k
 mesa-libGL             x86_64      17.2.3-8.20171019.el7       base      156 k
 mesa-libgbm            x86_64      17.2.3-8.20171019.el7       base       38 k
 mesa-libglapi          x86_64      17.2.3-8.20171019.el7       base       43 k
 pango                  x86_64      1.40.4-1.el7                base      275 k
 pixman                 x86_64      0.34.0-1.el7                base      248 k

Transaction Summary
================================================================================
Install  1 Package (+25 Dependent packages)

The yum install elinks:

# yum install elinks
...
================================================================================
 Package               Arch         Version                    Repository  Size
================================================================================
Installing:
 elinks                x86_64       0.12-0.37.pre6.el7         base       882 k
Installing for dependencies:
 js                    x86_64       1:1.8.5-20.el7             base       2.3 M
 nss_compat_ossl       x86_64       0.9.6-8.el7                base        37 k

Transaction Summary
================================================================================
Install  1 Package (+2 Dependent packages)

So while attempting to add recap to just capture my statistics (not even using this links feature at all), I'm faced with adding 20+ extra meaningless packages to a minimal footprint cloud device. We can reduce this cruft by switching to elinks and lose no functionality, since all that recap does is run elinks -dump (url) and prints it, no parsing. The elinks output is very links-similar.

Additionally, notice that elinks comes from Base, it's the standard in modern Red Hat. links has been pushed to EPEL as it was removed from RHEL long ago, so we're working closer towards removing an external (non-vendor) dependency chain.

Related Issue: #169 - this may help fix that problem

@tonyskapunk
Copy link
Contributor

Yeah, is a huge difference on packages, and while there are differences in the output is minimal:

https://gist.github.com/tonyskapunk/0dd66cace2e1ca09cc2d02be5d30ffc3

I honestly would like to move the status check outside of the main resources report and have it as an optional one, besides it is by default not enabled. Then letting people install those dependencies as needed.

@terackspace
Copy link
Author

Documenting here - Tony and I talked offline, this is a perfect fit for the 2.0 reorganization - (e)links becomes a plugin, this dependency then is tied to the plugin's subpackage install (e.g. recap-webserver or whatever) that installs the config, the code, and pulls in any needed deps like elinks.

@tonyskapunk
Copy link
Contributor

That is correct, just a clarification point, the intent is to separate the http_full_status from core to move it as a plugins. That enables separation and could help to separate packages as well if that route is taken.

@tonyskapunk
Copy link
Contributor

@terackspace if you have some free cycles could you take a look to #171 feedback is appreciated.

@tonyskapunk tonyskapunk self-assigned this Nov 9, 2018
@tonyskapunk tonyskapunk added this to the 2.0.0 milestone Nov 29, 2018
@tonyskapunk
Copy link
Contributor

Closing this issue, releasing in 2.0.0, Fix on #171

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants