# Blacklisting ports



## c_stjago (Jun 6, 2012)

Hi everyone,

Have been mostly a linux user since 1998, have used freebsd FreeBSD for about a year but switched back to linux due to lack of drivers. Liked the stability and performance of the system though and from time to time have kept somewhat up to date with its development.

I am thinking of switching back, have tested hardware, done research, configs etc. One thing I dislike about linux distros is the bloat. In my test with PC-BSD I noticed the same thing, building KDE requires building CUPS, and a lot of i8n packages. Is there a way to blacklist all of these ports? In the case of CUPS for instance => I haven't owned a printer in over 10 years, my employer's laser printer works just fine for those 10 personal pages I print a year.

I have consulted everybody's BFF ('G') and the handbook, but can't find any info relating to this. So if anyone can give me some pointers, would be much appreciated. Also if I understood it correctly automounting nowadays doesn't require HAL, just Vermaden's script?!


----------



## bbzz (Jun 7, 2012)

If you don't want bloat, don't install KDE in the first place. 

The options you can affect are given to you with *make config* under respective ports tree.

As for automounting, there's couple of ways, but Vermaden's script will work nicely.


----------



## c_stjago (Jun 7, 2012)

That's not helpful at all. I don't want to configure the port, I don't want the port. This issue also concerns other OS'es as I tried to explain in my initial post. Another example: you may be using XFCE as your preferred GUI and then find out you have to install GNOME because there's some dependency relating to GTK. In SuSE, I used to just mark those packages as "never install". You get some warning concerning a broken system but the rest of the packages install just fine. So my question is: how do I blacklist "unwanted" ports and packages on FreeBSD? Is it even possible?


----------



## SirDice (Jun 7, 2012)

Packages are simply pre-compiled ports with their default options set. You cannot change those options.

If you want different options your only option is to build the port.


----------



## bbzz (Jun 7, 2012)

c_stjago said:
			
		

> That's not helpful at all. I don't want to configure the port, I don't want the port. This issue also concerns other OS'es as I tried to explain in my initial post. Another example: you may be using XFCE as your preferred gui and then find out you have to install GNOME because there's some dependency relating to GTK. In SuSE, I used to just mark those packages as "never install". You get some warning concerning a broken system but the rest of the packages install just fine. So my question is: how do I blacklist "unwanted" ports and packages on FreeBSD? Is it even possible?



You said you went trough the handbook. A review might be in order.


----------



## jb_fvwm2 (Jun 7, 2012)

```
cd /usr/ports/x11-wm/
# choose some port ..
cd xfce4
make missing
```
You'll know in advance how much more the install would require, and by changing subdirectories within x11-wm one could easily install three or four lightweight ones and test (I typically use a configuration file pulled from the web somewhere... saves one weeks or days of learning to configure it and the end result may be beyond what one has time for...)


----------



## c_stjago (Jun 7, 2012)

SirDice said:
			
		

> Packages are simply pre-compiled ports with their default options set. You cannot change those options.



I am aware of the difference between ports and packages. It's the same on any system, either you build the source code or you install the vendor's version with the precompiled options said vendor set. 

I think we are miscommunicating, so I'll try to rephrase. What I am looking for is an easy way to:

block specific packages from downloading/installing when doing *pkg_add*
at the same time, block those same packages from building when you are inside the ports tree. (Without editing Makefiles to remove dependencies.)
@jb_fvwm2, your answer is quite helpful and closer to what I am looking for. Thank you. Did not come across the *make missing* option in my search before.


----------



## SirDice (Jun 8, 2012)

c_stjago said:
			
		

> block specific packages from downloading/installing when doing *pkg_add*


This will fail because there will be missing dependencies and the specific package you're trying to install will fail to do so. Think of those options as "hardcoded". 


> at the same time, block those same packages from building when you are inside the ports tree. (Without editing Makefiles to remove dependencies.)


This might be easier to accomplish. As you may or may not know the options for ports are set using various WITH_* and WITHOUT_* "knobs". You can add those to /etc/make.conf and every time you build a port they'll be automatically used. Have a look at the Makefile of a port to see which "knobs" you can set or unset.

An example of a such a "knob" is WITHOUT_X11 in editors/vim.


----------



## c_stjago (Jun 11, 2012)

@SirDice, thanks for the reply and the info. If I understand correctly, the dependencies in the package system cannot be circumvented.

I did know about some of these "knobs" for /etc/make.conf. As far as the "knobs" for the individual ports, I will have to look those up (depending on how much free (=computing) time I have in the next 2 weeks. Should I come across anything "insightful" that relates to the purpose of this thread, I'll post it. 

I've tried searching for a definitive list online, but couldn't find anything but the popular ones I already knew about e.g. WITHOUT_NOUVEAU, BATCH, and GCC-related stuff (version, flags, parallel, etc.).


----------

