# FI printers via Samba

Script for installing faculty printers on Linux via Samba print server.


## Advantages

-   You can print on WiFi using Samba. (With unauthenticated IPP printing you are allowed to only print via Ethernet cable.)
-   You can add a FI printer to your existing CUPS instance. This way, you don&rsquo;t have to switch configurations.
-   You don&rsquo;t need to have the same login on your computer as your faculty login.


## Disadvantages

-   Printers have to be installed one by one.
-   This is not the prefered way of printing on fi. (Prefered way is via Kerberos.)


## Pre-requirements

-   root access (or sudo)
-   running local [CUPS](https://www.cups.org/) print server
-   Samba client (`smbclient`)
-   Python2 for `copy4a` and `copy5b`
-   Cron system for automatic update


### Warning

If you are printing with unauthenticated IPP or Kerberized IPP, you will have to remove client configuration file for CUPS, which is located at `/etc/cups/client.conf`.


## Usage

Usage: `./install.pl (--cron|[--usage] <printer-name>)` , where `<printer-name>` is a valid printer name. If supplied `--usage` script will only update drivers. Passing --cron will only prompt user for cron installation.

For example, to install printer `lj2b` run

```shell
./install.pl lj2b
```

After running the script, you will be prompted for you faculty login(username and password) and for cron instalation if not already installed.


### Available printers

Currently available printers:

-   copy2a
-   copy3a
-   copy4a
-   copy4b
-   copy4c
-   copy5b
-   copy5c
-   lj2a
-   lj2b
-   lj3a
-   lj-a302
-   lj3b
-   lj4a
-   lj4c
-   lj4p
-   lj5c

You can find out more information on <https://www.fi.muni.cz/tech/unix/print.html>.


## Repository structure

| File                     | Description                                      |
|------------------------ |------------------------------------------------ |
| `install.pl`             | main install script                              |
| `cron.pl`                | cron script for updating PPDs                    |
| `filters`                | folder with filters for CUPS                     |
| `ppds`                   | folder with PPDs for CUPS                        |
| `PyPDF2` and `reportlab` | folder with Python 2 dependencies for `TA5007ci` |
