# VIM package bloated



## Spartrekus (Feb 21, 2019)

Hello,

VIM is likely bloated.  There are many packages that are getting installation no longer _clean_.
It increases the number

I just installed TeX, Vim, pkg, emacs,... on a pure server.  Xorg not present.
I notice many X things and sometimes Wayland library.

Seriously, this is not normal - and hopefully, this post will open discussion to find possibilities for servers.

Likely that we could have base, plain console, or ports and "clean" ports.
Let's discuss about possibilities...


```
vim-8.1.0342
Name           : vim
Version        : 8.1.0342
Installed on   : Sun Dec 30 19:56:47 2018 CET
Origin         : editors/vim
Architecture   : FreeBSD:12:i386
Prefix         : /usr/local
Categories     : editors
Licenses       : VIM
Maintainer     : adamw@FreeBSD.org
WWW            : http://www.vim.org/
Comment        : Improved version of the vi editor
Options        :
    ATHENA         : off
    CONSOLE        : off
    CSCOPE         : on
    DEFAULT_VIMRC  : on
    EXUBERANT_CTAGS: on
    GNOME          : off
    GTK2           : on
    GTK3           : off
    LUA            : off
    MOTIF          : off
    NLS            : on
    PERL           : on
    PYTHON2        : on
    PYTHON3        : off
    RUBY           : on
    SCHEME         : off
    TCL            : off
    X11            : off
    XTERM_SAVE     : off
Shared Libs required:
    libgtk-x11-2.0.so.0
    libglib-2.0.so.0
    libgobject-2.0.so.0
    libpango-1.0.so.0
    libruby24.so.24
    libICE.so.6
    libgdk-x11-2.0.so.0
    libintl.so.8
    libpython2.7.so.1
    libXt.so.6
    libperl.so.5.26
    libSM.so.6
    libgdk_pixbuf-2.0.so.0
    libgio-2.0.so.0
    libX11.so.6
Annotations    :
    FreeBSD_version: 1200086
    cpe            : cpe:2.3:a:vim:vim:8.1:::::freebsd12:x86
    repo_type      : binary
    repository     : FreeBSD
Flat size      : 30.7MiB
Description    :
Vim is a highly configurable text editor built to enable efficient text editing.
It is an improved version of the vi editor distributed with most UNIX systems.

Vim is often called a "programmer's editor," and so useful for programming that
many consider it an entire IDE. It's not just for programmers, though. Vim is
perfect for all kinds of text editing, from composing email to editing
configuration files.

WWW: http://www.vim.org/
WWW: https://github.com/vim/vim
```


----------



## forquare (Feb 21, 2019)

Well for Vim, there's editors/vim-console that has much less included.

Generally I want Packages to be as useful as possible.  That often means having more options turned on.
That being said, I like that some ports (nginx springs to mind as another example) have a "full" or "minimal" Port/Package for those who don't want everything.


----------



## aragats (Feb 21, 2019)

Consider editors/vim-tiny instead.


----------



## Spartrekus (Feb 21, 2019)

aragats said:


> Consider editors/vim-tiny instead.



thank you
Something in between would be perfect ...



forquare said:


> Well for Vim, there's editors/vim-console that has much less included.
> 
> Generally I want Packages to be as useful as possible.  That often means having more options turned on.
> That being said, I like that some ports (nginx springs to mind as another example) have a "full" or "minimal" Port/Package for those who don't want everything.


Kinda Awful to see so much packaged in it.
forquare: Have you never thought to move to a BSD more oriented to servers, and less 4desktops?


----------



## forquare (Feb 21, 2019)

Spartrekus said:


> forquare: Have you never thought to move to a BSD more oriented to servers, and less 4desktops?



Of the BSDs I currently only use FreeBSD which is for servers and can also be used for desktops.  I use FreeBSD both as a server OS and as a desktop OS and have little inclination to try other BSDs at this time.


----------



## hukadan (Feb 21, 2019)

Spartrekus said:


> to a BSD more oriented to servers, and less 4desktops


Could you elaborate on this ? I am curious.


----------



## Wozzeck.Live (Feb 22, 2019)

Spartrekus said:


> Hello,
> 
> VIM is likely bloated.  There are many packages that are getting installation no longer _clean_.
> It increases the number
> ...



If you wanted to build a console oriented VIM, with no XORG at all, explain me :

why have you activated GTK2 ???????????
why have you not activated console option ???????????????????????
Please, please, please and again please stop complaining continuously on this forum that things are bloated
Port system let each one customizes as he want. Some people want VIM under xorg, some people want VIM in console only

The example you give shows clearly that you have made a misconfiguration, and you are complaining for nothing, absolutely nothing.

FreeBSD is not a "beginner all purpose operating system", keep this in mind.
It requires great attention when customizing ports, parameters... if you are not qualified, please go back to Windows, but stop complaining on this forum
Any faulty parameters will make leak package.

If you activate GTK2, it is for running VIM under Xorg, so it generally implies some X11 components
If you deactivate all graphics interfaces, you must at less activate console mode or it is useless to build VIM

In another post you are complaining that Firefox is crashing and so is bloated.... but as today nothing proves that it is a general problem.
Many users run Firefox with no problem... so the crashes are likely linked to some problems specific to your configuration (probably some dependencies to rebuild)
If you find firefox bloated... ok just run www/surf, but don't complain that you can't play youtube video

I have encountered myself Firefox crashes and core dump in the past, yes .... But investigating I found that problems were located elsewhere... dependencies, dependencies always dependencies, sometimes also that was simply caused by a filesystem corruption repaired with `fsck`, before I decided to switch UFS to gjournal. So, in fact Firefox was rarely the "culprit"

If you want to secure your building process, please use /etc/make.conf
For my jails, so running only in console mode, in /etc/make.conf I have set some global parameters that prevent some options linked to Xorg to be activated by mistake

Here is just an example of /etc/make.conf, preventing non desirable ports to build in a NOX11 context
Get inspiration and write your own /etc/make.conf


```
# I - Apply to all : Kernel, World, Ports system
# ----------------------------------------------


# Apply to all : Kernel, World, Ports

WRKDIRPREFIX?=    /cell/portbuild
#PORTSDIR=    /usr/ports
CPUTYPE?=core2

#OPTIONS_UNSET=
#OPTIONS_SET=

# Following options supersede any custom options done manually via system port
# Rules apply according to "last matching rule", so any further specific rule override the following
# We unset force all X11/X11-toolkits ports, we deactivate DOCS to get lighter packages
OPTIONS_UNSET_FORCE= X11 QT* GTK* DOCS DOXYGEN KDE* GNOME*
OPTIONS_SET_FORCE= EXAMPLES MANPAGES

#As an exception to the former rule, we want to build DOCS for bind
dns_bind_SET_FORCE= DOCS

JAVA_VERSION=    1.8+
DEFAULT_VERSIONS+= ssl=base gssapi=base

# II - Forbidden Ports
# --------------------

.if ${.CURDIR:M*/dns/unbound}

IGNORE= In base system

.endif

# an easy way to prevent any port leak linked to QT framework and GTK toolkits using wildcard

.if ${.CURDIR:M*/qt*}

IGNORE=No QT or GTK modules in jail

.endif

.if ${.CURDIR:M*/gtk*}

IGNORE=No QT or GTK modules in jail

.endif

# III - Apply to all Ports
# ------------------------

# We want to always build/update ports even in vulnerabilities context
# User check the vulnerabilities daily and decide for each port what to do, but building process is not forbidden by default

.if ${.CURDIR:M*/*}

DISABLE_VULNERABILTIES= yes
#NO_IGNORE=yes
#NO_CHECKSUM=yes

.endif

# IV - Apply to specific ports
# -----------------------------

# Example of transparent customization to force UNSAFE JOBS and activate "with OPENSSL via port" on each port update for a specific port

.if ${.CURDIR:M*/net-mgmt/net-snmp}

OPTIONS_SET_FORCE= OPENSSL # use openssl port
MAKE_JOBS_UNSAFE= yes

.endif
```


----------

