← Zpět na obsah

Kapitola 13: Autorství a licence programu

Autorské právo - ochrana tvůrčí práce
Autorské právo - ochrana tvůrčí práce

1. Úvod: Kdo je pánem svého díla?

Představ si, že namaluješ krásný obrázek nebo napíšeš super písničku. Je to tvoje dílo, tvoje nápady, tvoje práce. Ty rozhoduješ, kdo si ho může prohlédnout, kdo si ho může zkopírovat, nebo jestli ho někdo může prodat. Stejně je to i s počítačovými programy. Když někdo vytvoří program, je to jeho "dítě" a má na něj práva. Tomu se říká autorství. A licence jsou jako pravidla, která říkají ostatním, jak mohou ten program používat.

2. Autorství: Kdo program vytvořil?

Když někdo vymyslí a napíše program, stává se jeho autorem. Je to jako spisovatel, který napíše knihu, nebo malíř, který namaluje obraz.

Definice: Autorství (Autorské právo)

Autorství (neboli autorské právo) je zákonná ochrana, která patří tvůrci (autorovi) nějakého díla. Dílem může být kniha, písnička, obrázek, film, ale i počítačový program. Autor má právo rozhodovat, co se s jeho dílem bude dít.

Proč je autorství důležité?

Autorství je důležité, protože:

Příklad: Tvoje hra ve Scratchi
Když vytvoříš jednoduchou hru v programu Scratch, jsi jejím autorem. Můžeš se rozhodnout, jestli ji budeš sdílet s ostatními, nebo si ji necháš jen pro sebe.

3. Licence programu: Pravidla pro používání

Když autor chce, aby jeho program používali i ostatní, ale zároveň chce mít kontrolu nad tím, jak ho používají, použije licenci. Licence je jako smlouva, která říká, co smíš a co nesmíš s programem dělat.

Definice: Licence programu

Licence programu je soubor pravidel, která určují, jakým způsobem můžeš počítačový program používat, kopírovat, měnit nebo šířit.

Proč jsou licence důležité?

Licence jsou důležité pro autory i pro uživatele:

Typy softwarových licencí
Typy softwarových licencí

4. Různé druhy licencí (jednoduše)

Existuje mnoho druhů licencí, ale pro začátek si ukážeme ty nejzákladnější:

Člověk a digitální svět

V digitálním světě je důležité respektovat práci ostatních. Stejně jako bys nechtěl, aby ti někdo ukradl tvůj výkres, neměl bys ani ty nelegálně kopírovat placené programy, filmy nebo hudbu. Porozumění licencím a autorským právům je základem digitální etiky a pomáhá nám chovat se na internetu čestně a zodpovědně.

Otázky k zamyšlení

Úkoly pro praxi

  1. Hledání licencí v okolí: Vyber si tři různé programy nebo aplikace, které používáš (např. hra, internetový prohlížeč, textový editor). Zkus najít informace o jejich licenci. Často je to v menu "Nápověda", "O programu" nebo "Nastavení". Zjisti, jestli jsou placené, zdarma nebo open source.
  2. ⭐ PRAKTICKÝ ÚKOL: Vytvoř svou vlastní licenci v Wordu

    Postup:
    a) Otevři Microsoft Word nebo Google Docs
    b) Vytvoř dokument s názvem: "LICENCE NA MŮJ PROGRAM" nebo "LICENCE NA MOU HRU"
    c) Vyplň následující (můžeš si vybrat, zda popisuješ svůj program Scratchem, algoritmus nebo svůj projekt):

    • Název tvého projektu
    • Tvé jméno a dnešní datum
    • Krátký popis (2-3 věty, co program/projekt dělá)
    • Tvá pravidla:
      • Co ostatní SMÍ s tvým projektem dělat (hrát, modificiovat, sdílet...)
      • Co ostatní NESMÍ dělat (prodávat, přisvojit si...). Uvádějte důvody!
    • Tvůj podpis a e-mail (přesné znění si vybereš)

    Tip: Můžeš použít věty jako: "Děkuji za respektování mé práce" nebo "Baví mě tvůrčí práce a chci ji chránit".
    Uložení: Ulož dokument jako PDF a pošli ho svému učiteli jako přílohu.

  3. Diskuze o právech tvůrců: Promluv si s kamarádem nebo rodiči o tom, proč je špatné kopírovat placené hry, filmy nebo hudbu a dávat je někomu jinému. Jaké to může mít následky? Jak by se cítil, kdyby někdo bez svolení kopíroval jeho práci?

* Rozšíření pro pokročilé

Typy licencí v praxi

V profesionálním světě se setkáš s různými standardními licencemi. Je důležité jim rozumět, protože určují, co smíš s programem nebo dílem dělat. Zde jsou nejběžnější typy:

Open Source licence

GPL (General Public License) je jedna z nejznámějších open source licencí. Její hlavní myšlenka je "svoboda pro všechny". Pokud použiješ GPL kód ve svém projektu, musíš svůj projekt také zveřejnit jako open source. Je to jako řetěz – svoboda se šíří dál. Linux je nejslavnější příklad softwaru pod GPL.

MIT License je naopak velmi jednoduchá a volná. Říká v podstatě: "Dělej si s tím, co chceš, jen uveď původního autora." Mnoho populárních knihoven (React, Vue.js) používá MIT licenci, protože je přátelská i pro komerční použití.

Creative Commons pro kreativní obsah

Creative Commons (CC) jsou licence navržené speciálně pro kreativní díla jako texty, fotografie, hudba nebo videa. Fungují jako "stavebnice" – můžeš kombinovat různé podmínky:

Praktický příklad: Hledáš obrázek pro školní prezentaci. Na Wikimedia Commons najdeš fotografii s licencí "CC-BY-SA". To znamená, že ji můžeš použít zdarma, ale musíš uvést autora a pokud prezentaci sdílíš, měla by mít podobnou otevřenou licenci.

Právní pojmy, které bys měl znát

Copyright © je automatická ochrana, která vzniká v okamžiku, kdy něco vytvoříš. Nemusíš nikam nic registrovat – jakmile napíšeš básničku nebo nakreslíš obrázek, máš na něj autorská práva.

EULA (End User License Agreement) je smlouva, kterou "podepisuješ" (obvykle kliknutím na "Souhlasím"), když instaluješ software. Obsahuje pravidla, co s programem smíš a nesmíš dělat.

Creative Commons - stavebnice licencí
Creative Commons - stavebnice licencí

* Úkoly pro pokročilé

  1. Word – Profesionální licence: Vytvoř ve Wordu profesionální licenční dokument pro svůj projekt. Použij šablonu s hlavičkou, čísly verzí, datum účinnosti, definice pojmů a podrobná ustanovení (co je povoleno, co zakázáno, odpovědnost).
  2. Excel – Srovnání licencí: Vytvoř tabulku porovnávající licence: GPL, MIT, Apache, CC-BY, CC-BY-NC-SA. Sloupce: Název, Typ (open/closed), Úpravy povoleny (ano/ne), Komerční použití (ano/ne), Nutnost uvést autora, Příklady použití.
  3. Analýza EULA: Najdi EULA nějakého programu (např. při instalaci). Přečti si ji a napiš krátké shrnutí (1 strana A4): Co povoluje? Co zakazuje? Co tě překvapilo?
  4. Creative Commons: Najdi na internetu obrázek s licencí Creative Commons (např. na Wikimedia Commons). Použij ho ve svém projektu a správně uveď autora podle požadavků licence.

** Rozšíření pro maturitní obory

Podrobně: Autorské právo v ČR a EU

Autorské právo v České republice je upraveno zákonem č. 121/2000 Sb. (autorský zákon). Tento zákon chrání tvůrce a jejich díla. Pojďme se podívat na klíčové koncepty:

Majetková práva autora

Majetková práva jsou ta, která autor může prodat nebo licencovat. Dávají autorovi právo rozhodovat o tom, jak bude jeho dílo použito:

Majetková práva trvají 70 let po smrti autora. Po této době se dílo stává "veřejným majetkem" (public domain) a kdokoli ho může volně používat. Proto jsou díla Shakespeara nebo Mozarta volně dostupná.

Osobnostní práva autora

Osobnostní práva chrání vztah autora k jeho dílu a jsou nepřevoditelná – autor se jich nemůže vzdát ani je prodat:

Speciální případy: Zaměstnanecké a školní dílo

Zaměstnanecké dílo: Pokud vytvoříš software nebo jiné dílo jako součást své práce pro zaměstnavatele, majetková práva má automaticky zaměstnavatel. Ty zůstáváš autorem (osobnostní práva), ale firma rozhoduje o použití díla.

Školní dílo: Když vytvoříš projekt jako student, jsi jeho autorem. Škola má však právo dílo použít pro výukové účely. Pokud by škola chtěla dílo komerčně využít, musí s tebou uzavřít licenční smlouvu.

Modely licencování software

Softwarové společnosti používají různé obchodní modely. Jako budoucí IT profesionál bys měl znát jejich rozdíly:

Perpetual License (trvalá licence)

Zaplatíš jednou a software vlastníš navždy. Například koupíš Microsoft Office 2021 za 3 500 Kč a můžeš ho používat neomezeně dlouho. Nevýhoda: nedostaneš nové verze, jen bezpečnostní aktualizace.

Subscription (předplatné)

Platíš pravidelně (měsíčně nebo ročně) a máš přístup k nejnovější verzi. Například Microsoft 365 stojí cca 2 000 Kč/rok. Výhoda: vždy aktuální software. Nevýhoda: přestaneš platit = přijdeš o přístup.

Freemium model

Základní verze je zdarma, ale pokročilé funkce jsou placené. Příklad: Spotify (zdarma s reklamami, bez reklam za předplatné), Canva (základní zdarma, Pro za předplatné).

Open Core

Jádro software je open source a zdarma, ale rozšíření a enterprise funkce jsou placené. Příklad: GitLab Community Edition je zdarma, GitLab Enterprise je placený.

Praktický výpočet: Firma má 10 zaměstnanců. Co je levnější? Krátkodobě je perpetual licence levnější, ale předplatné zahrnuje cloudové služby, aktualizace a podporu.
Struktura licenční smlouvy
Struktura licenční smlouvy

** Úkoly pro maturitní obory

  1. Word – Komplexní licenční smlouva: Napiš profesionální EULA pro fiktivní aplikaci. Zahrň: definice, udělení licence, omezení, duševní vlastnictví, odpovědnost, ukončení, rozhodné právo. Minimálně 2 strany.
  2. Excel – Analýza nákladů: Srovnej náklady na MS Office (perpetual vs 365 subscription) za 5 let pro firmu s 10 zaměstnanci. Která varianta je levnější? Vytvoř graf.
  3. PowerPoint – Prezentace: Vytvoř prezentaci "Autorské právo v digitální době" (12-15 snímků). Zahrň: zákon, typy práv, licence, piratství, fair use, Creative Commons.
  4. Canva – Infografika CC: Vytvoř v Canvě infografiku vysvětlující všechny typy Creative Commons licencí (CC-BY, CC-BY-SA, CC-BY-NC, atd.) s ikonami a příklady použití.
  5. Word – Právní analýza: Najdi případ porušení autorských práv v IT (např. Oracle vs Google). Napiš shrnutí: co se stalo, argumenty stran, výsledek, dopad na průmysl.

*** Rozšíření pro IT obory

Jako IT specialista budeš pracovat s open source knihovnami a vytvářet vlastní software. Musíš rozumět licencím na praktické úrovni.

Open Source licence v praxi

Při vývoji software používáš knihovny a frameworky. Každý má licenci, kterou musíš dodržovat:

Licence Můžeš Musíš Příklady
MIT Cokoli Uvést copyright React, jQuery, Rails
Apache 2.0 Cokoli + patenty Uvést copyright + změny Android, Kubernetes
GPL v3 Cokoli Zveřejnit zdrojový kód Linux, WordPress
LGPL Použít v proprietárním SW Zveřejnit změny knihovny Qt, FFmpeg

Kontrola licencí závislostí

# pip install pip-licenses
# pip-licenses  # Vypíše licence všech balíčků

# Výstup:
#  Name              Version   License
#  requests          2.28.0    Apache 2.0
#  flask             2.1.0     BSD-3-Clause
#  numpy             1.23.0    BSD License

# npm (Node.js)
# npm install -g license-checker
# license-checker --summary

# Python skript pro kontrolu
import pkg_resources

for package in pkg_resources.working_set:
    print(f"{package.project_name}: {package.version}")
    try:
        metadata = package.get_metadata('METADATA')
        for line in metadata.split('\n'):
            if line.startswith('License:'):
                print(f"  -> {line}")
                break
    except:
        pass
        

Vytvoření vlastní licence

# Příklad MIT licence pro tvůj projekt
# Vytvoř soubor LICENSE v kořenu projektu:

MIT License

Copyright (c) 2024 Tvé Jméno

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND...
        

Správa závislostí a bezpečnost

# Kontrola bezpečnostních zranitelností
# pip install safety
# safety check

# npm audit (pro Node.js)
# npm audit

# requirements.txt - fixace verzí
requests==2.28.0
flask>=2.0.0,<3.0.0
numpy~=1.23.0

# .gitignore - co NESMÍ být v repozitáři
*.env
.env
secret_key.txt
config/secrets.yml
        

*** Praktické úkoly pro IT obory

  1. Audit licencí: Vytvoř projekt se 5+ závislostmi. Pomocí pip-licenses nebo license-checker vytvoř přehled licencí. Jsou kompatibilní?
  2. GitHub projekt: Vytvoř repozitář na GitHubu. Přidej README.md, LICENSE (vyber vhodnou licenci), .gitignore a CONTRIBUTING.md.
  3. SBOM: Vygeneruj Software Bill of Materials (SBOM) pro svůj projekt – seznam všech komponent a jejich licencí.
  4. Licence decision tree: Vytvoř rozhodovací strom: "Jakou licenci zvolit pro můj projekt?" (chci zisk? chci otevřenost? atd.)

*** Projekt pro IT obory: Správce kontaktů (část 4/4 - FINÁLE)

Dokončujeme projekt Správce kontaktů. V této kapitole napíšeme licenci a dokumentaci a vytvoříme finální verzi.

Krok 12: Výběr licence

Pro náš projekt zvolíme MIT licenci – je jednoduchá, permisivní a široce používaná.

LICENSE (soubor v kořenu projektu)

MIT License

Copyright (c) 2024 [Tvoje Jméno]

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
        

Krok 13: Finální README.md

# 📇 Správce kontaktů

Jednoduchá CLI aplikace pro správu osobních kontaktů napsaná v Pythonu.

## ✨ Funkce

- ➕ Přidání nového kontaktu (jméno, telefon, e-mail)
- 📋 Zobrazení všech kontaktů
- 🔍 Vyhledávání podle jména nebo telefonu
- 🗑️ Mazání kontaktů
- 💾 Automatické ukládání do JSON souboru

## 🚀 Instalace

```bash
# Klonuj repozitář
git clone https://github.com/tvoje-jmeno/spravce-kontaktu.git
cd spravce-kontaktu

# (Volitelné) Vytvoř virtuální prostředí
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows

# Spusť aplikaci
python main.py
```

## 📖 Použití

Po spuštění se zobrazí menu:
```
========================================
     SPRÁVCE KONTAKTŮ
========================================
1. Zobrazit všechny kontakty
2. Přidat nový kontakt
3. Vyhledat kontakt
4. Smazat kontakt
5. Konec
----------------------------------------
```

## 🧪 Testy

```bash
# Nainstaluj pytest
pip install pytest

# Spusť testy
pytest tests/ -v
```

## 📁 Struktura projektu

```
spravce-kontaktu/
├── main.py           # Hlavní program
├── models/           # Datové modely
│   ├── kontakt.py    # Třída Kontakt
│   └── spravce.py    # Správce kontaktů
├── utils/            # Pomocné moduly
│   └── validators.py # Validace vstupů
├── tests/            # Unit testy
├── data/             # Uložená data
├── LICENSE           # MIT licence
└── README.md         # Tento soubor
```

## 🤝 Přispívání

1. Forkni repozitář
2. Vytvoř větev (`git checkout -b feature/nova-funkce`)
3. Commitni změny (`git commit -m 'Přidána nová funkce'`)
4. Pushni větev (`git push origin feature/nova-funkce`)
5. Otevři Pull Request

## 📝 Licence

Tento projekt je licencován pod MIT licencí - viz soubor [LICENSE](LICENSE).

## 👤 Autor

**[Tvoje Jméno]**
- GitHub: [@tvoje-jmeno](https://github.com/tvoje-jmeno)
- Email: tvuj@email.cz

---
⭐ Pokud se ti projekt líbí, dej mu hvězdičku na GitHubu!
        

Krok 14: Vytvoření verze (tag)

# Finální commit
git add .
git commit -m "Přidána licence a finální dokumentace

- MIT licence
- Kompletní README s instrukcemi
- Projekt je připraven k publikaci"

# Vytvoř verzi 1.0.0
git tag -a v1.0.0 -m "První stabilní verze"

# Nahraj vše včetně tagu
git push
git push --tags
        

Krok 15: Vytvoření Release na GitHubu

  1. Jdi na svůj repozitář na GitHubu
  2. Klikni na "Releases" (vpravo)
  3. Klikni "Create a new release"
  4. Vyber tag "v1.0.0"
  5. Napiš název: "Správce kontaktů v1.0.0"
  6. Napiš popis změn (co je ve verzi)
  7. Klikni "Publish release"

🎉 Finální struktura projektu

spravce-kontaktu/
├── .git/
├── .gitignore         ✅
├── LICENSE            ✅ MIT licence
├── README.md          ✅ Kompletní dokumentace
├── main.py            ✅ Hlavní program
├── models/
│   ├── __init__.py
│   ├── kontakt.py     ✅ Třída Kontakt
│   └── spravce.py     ✅ Správce kontaktů
├── utils/
│   ├── __init__.py
│   └── validators.py  ✅ Validace vstupů
├── tests/
│   ├── __init__.py
│   ├── test_kontakt.py    ✅ Testy
│   └── test_validators.py ✅ Testy
└── data/
    └── kontakty.json  (vytvoří se automaticky)

🏆 PROJEKT DOKONČEN! 🏆
        

*** Závěrečný úkol

  1. Dokonči projekt podle kroků výše.
  2. Zkontroluj, že všechny testy procházejí.
  3. Vytvoř tag v1.0.0 a Release na GitHubu.
  4. Pošli odkaz na svůj GitHub repozitář učiteli.
  5. Bonus: Přidej novou funkci (export do CSV, import kontaktů) a vytvoř v1.1.0.
🎓 Co jsi se naučil v kapitolách 10-13:
← Zpět na obsah