# Liberated package changes

This directory contains fixes, patches, changes for liberating packages for Void. Mainly created for [Drake Newell's void-packages](https://github.com/drake-newell/void-packages) repository.


<a id="liberated"></a>
## Liberated package list

__Disclaimer:__ They are not guaranteed to be liberated. Think of them as best effort. If you find anything to be not Free, raise an issue.

1. minitube
1. libxfce4ui - Void package was already free of the offending name, so added directly to your-freedom allowlist.txt
1. grub
1. p7zip
1. texlive-core
1. texlive-fontsextra
1. texlive20*-bin - just renamed void.profile to xbps.profile, minor changes in comments
```
texlive2014-bin
texlive2016-bin
texlive2017-bin
texlive2018-bin
texlive2019-bin
texlive2020-bin
```
1. texlive-latexextra
1. libsynctex
1. kio
1. abiword
1. ark
1. epiphany
1. epdfview
1. khotkeys
1. midori
1. netsurf
1. xarchiver
1. unp
1. atool
1. okular
1. mcomix
1. openexr
1. ponysay
1. avidemux (listed as avidemux-cli, avidemux-qt from the Arch side)
1. blackbox
1. libosinfo
1. hydrogen
1. hexchat
1. gloobus-preview
1. xscreensaver
1. SDL
1. cool-retro-term
1. faenza-icon-theme
1. faience-icon-theme
1. povray
1. smplayer
1. virt-manager
1. python-reportlab
1. pysolfc-cardsets
1. opencv (version 3.x)
1. opencv4 (version 4.x)
1. mesa-demos
1. perl-Algorithm-Diff
1. openmw
1. bogofilter
1. clementine
1. hplip
1. bibletime
1. qutebrowser
1. libksysguard
1. musescore
1. nextcloud-client
1. qtcreator
1. mate-icon-theme-faenza
1. gnome-boxes
1. kodi
1. supercollider
1. kdevelop
1. blender
1. ditaa
1. ruby
1. quassel*
```
quassel
quassel-client-shared
quassel-core
quassel-client
```
1. retroarch
1. otter-browser
1. libkgapi
1. debootstrap
1. netpbm
1. base-files
1. xorg-fonts


<a id="already-libre"></a>
### Already libre on Void's repo

This is a list of packages\* which are already free on Void's repo and does not need modifying packages. These were polluted on the Arch's package and hence was included on Parabola's blacklist.txt. But those pollutions are not there on Void's side. So these packages are perfectly safe to install from Void's repo:

- engrampa
- libxfce4ui
- acpi_call-dkms
- cowsay
- mc
- lesspipe
- psensor: because doesn't depend on libxnvctrl
- soundkonverter: because doesn't depend on faac or mac
- openshot: doesn't depend on faac
- asciidoc: doesn't depend on nonfree fop
- freerdp: doesn't depend on nonfree freerdp
- mplayer: doesn't depend on faac
- memtest86+: builds from source
- shntool: doesn't depend on mac
- openttd: doesn't have openttd-opensfx as optdep
- plasma-desktop: doesn't have discover as dep
- libogre: doesn't have nvidia-cg-toolkit as dep
- mate-sensors-applet: doesn't have libxnvctrl as dep
- cups-filters: doesn't have foomatic-db-nonfree as dep
- wireguard: doesn't build for a certain kernel
- handbrake: uses system deps
- handbrake-cli: uses system deps
- clamav: doesn't use libclamunrar
- icedtea-web: doesn't require firefox
- tp_smapi-dkms: doesn't build for linux kernel specifically
- vhba-module-dkms: doesn't build for linux kernel specifically
- signon-ui: doesn't build with webengine
- bbswitch: doesn't build for linux kernel specifically
- java-commons-io: builds from source already
- jedit: builds from source already
- apache-fop: builds from source already
- syslinux: branding issues are nonmajor right now, will add Ymir splash later
- ruby-devel-doc


For these, add the Void's package name on allowlist.txt twice, like `<package name>:<package name>`.

\* This is not an exhaustive list. There might be other packages that are already libre on Void.


<a id="unavailable"></a>
### Unavailable on Void

Packages\* on `blacklist.txt` that are not available on Void Linux yet, so skipped liberation:

- pacman
- cuneiform
- audex
- audio-convert
- ecasound
- libquicktime
- mencoder
- xmms2
- acpi_call
- texlive-bin (available as texliveYYYY-bin instead)
- wings3d
- xarchiver-gtk2 (has `xarchiver` only, instead)
- xerces2-java
- filesystem
- sensors-applet
- virt-install (has `virt-manager`, `virt-manager-tools` instead)
- lib32-mesa-demos
- uboot-a10-olinuxino-lime
- uboot-a13-olinuxino
- uboot-a20-olinuxino-lime2
- uboot-a20-olinuxino-lime
- uboot-chiliboard
- uboot-cubieboard2
- uboot-cubieboard
- uboot-cubietruck
- uboot-cubox
- uboot-trimslice
- uboot-usbarmory
- uboot-wandboard
- kipi-plugins
- kde-development-environment-meta
- icedtea-web-doc (has only `icedtea-web`)
- tp_smapi-lts
- tp_smapi
- kodi-bin
- kodi-eventclients
- kodi-gbm
- kodi-tools-texturepacker
- kodi-wayland
- kodi-x11
- marble-common (has only `marble`)
- vhba-module
- kdepim-addons
- quassel-client-small
- bladerf


They will need to be liberated if the packages arrive on Void. Note: Please do not add them on `allowlist.txt` because they need to be automatically conflicted with your-freedom when they arrive on Void, so that necessary steps can be taken to liberate them.

Items that have a different name on Void should not be listed here and go on the "Diffrent name" list below.

\* This is not an exhaustive list. There might be other packages.


<a id="different"></a>
### Different name on Void

These packages\* have different name on Arch/Parabola, so listed as the same. But on Void has different name. These are listed below as `<arch package> -> <void package>`:

- gst-plugins-bad -> gst-plugins-bad1
- gst-plugins-bad-libs -> gst-plugins-bad1-devel
- sdl -> SDL
- plasma-meta -> plasma-desktop
- opencv -> opencv, opencv4
- ogre -> libogre
- lib32-sdl -> SDL-devel-32bit
- perl-algorithm-diff -> perl-Algorithm-Diff
- wireguard-lts -> wireguard
- fop -> apache-fop
- kodi-dev -> kodi-devel
- tp_smapi -> tp_smapi-dkms
- fop -> apache-fop
- ruby-docs -> ruby-devel-doc
- quassel-monolithic -> quassel
- lsb-release -> base-files

For these, the Void package name should be listed in `srcpkgs/your-freedom/denylist.txt` if not liberated already. The entry should be removed from `denylist.txt` and added (important!) in `srcpkgs/your-freedom/allowlist.txt` when it is liberated. Nothing needs to be done for the Arch package name.

\* This is not an exhaustive list. There might be other packages.


<a id="void-only"></a>
### Unavailable on Arch / Parabola / blacklist.txt but available on Void

- clementine-spotify

They should be added to denylist.txt in both `liberatedpkgs` and `srcpkgs`.

\* This is not an exhaustive list. There might be other packages.


## Dev stuff

- Some files are saved with prefix `l_` which are just dev notes or useful files.
- Some files are of 0 bytes (empty) which are there to signify that the file should be deleted.
- To find some package from [32bit](https://wiki.voidlinux.org/Steam#Additional_steps_on_x86_64_machines) architecture:
```
sudo xbps-install -Syv void-repo-multilib{,-nonfree}
sudo xbps-install -S
xbps-query -Rs <query>
```


## Notes

### git diff to `-Np1`

XBPS complains when patching with git diff. We can simply remove lines starting with `diff --git ` and `index `:

```
# Convert git diff to be used with -Np1
sed -i '/^diff --git/d' example.patch
sed -i '/^index /d' example.patch
```


## TODO

Reminder for future:

1. Check `SDL2` based on `SDL` to see if it needs+can be liberated
1. Add Ymir logos for `faenza-icon-theme`
1. Add Ymir logos for `faience-icon-theme` and investigate the need for adding `distributor-logo-parabola.svg`
1. Check `hplip-gui` to see if libre
1. Investigate `musescore` downloading font during build
1. Investigate `kodi` talking to github during build. Build cannot continue without internet.
1. In `ditaa` template check if there's any need to remove any files similar to what is done on Parabola PKGBUILD
1. Add splash on `syslinux` package
1. base-system: has reference to Void, has `void-artwork` dep
1. void-artwork: should denylist it and make a new ymir-artwork package
