-
Notifications
You must be signed in to change notification settings - Fork 0
/
manpage
147 lines (119 loc) · 7.86 KB
/
manpage
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
.TH "PACFREE" "8" "Jan 11, 2021" "Pacfree v0.5+" "Pacfree Manual"
.SH NAME
Pacfree \- A Pacman wrapper written in Bash aimed to make Pacman free-software aware
.SH SYNOPSIS
\fIpacfree\fR <operation> [options] [targets]
.SH DESCRIPTION
Pacfree performs mainly two operations. In the first place, whenever a package is to be installed, its checks the package against Parabola's blacklists, and, if blacklisted, warns the user and let her choose whether to continue installing the package or not. Secondly, via the rules list, it allows to choose repositories on a per package basis. In this way, a ruled package will always be installed/upgraded from the specified repository, disregarding the repositories order in Pacman configuration file.
This manpage only covers options specific to Pacfree. For Pacman specific options see \fBpacman(8)\fR
.SH RATIONALE
\fBPacman and free-software\fR:
.TP
Pacman is no doubt a great and fantastic tool. Nonetheless, it falls short when it comes to free-software. It simply makes no distinction at all between free and non-free software; and it should. Making use of Parabola's blacklists, Pacree is intended to address this issue: it checks every package to be installed against the blacklist, warns the user and let her decide.
.TP
This point is absolutely relevant: WARNING the user about proprietary software is one thing, and FORCING the user NOT to install proprietary sofware, as Parabola does (via its 'your-freedom' package), is a completely different thing. No one can be FORCED to be free; that's impossible. Freedom must be chosen, and there is no freedom without choices. It is the user herself, and not someone else, be it a person or a software, who must freely DECIDE not to install proprietary software. Someone who is forced to do the right thing would be a good robot, a good machine, but not a good person. This is where Parabola, and generally all the FSF endorsed distributions as well, is wrong; and this is why this wrapper was wrote: it will warn the user about non-free software, but it's up to her what to do about it.
.TP
\fBPackages and repositories\fR:
.TP
When it comes to packages and repositories, Pacman default behaviour is to install/upgrade packages from the first repository defined in '/etc/pacman.conf' providing that package. This means that if the user wants to install/upgrade a package from a repository defined below another one providing the same package, Pacman will, soon or later, override the user's decision. This is where the repository rules list come into the scene.
.TP
Once Pacfree knows what is to be installed/upgraded, it checks every package against a rules list, and, if a rule for the package is found, it installs/upgrades the package from the specified repository, no matter what is the repositories order in '/etc/pacman.conf'.
.TP
The main idea of this functionality is to make Pacman able to handle packages with the same name coming from different repositories, for example, 'core/licenses' and 'libre/licenses', or 'community/midori' and 'libre/midori', without the need to explicitly specify the repository in the command line, besides the important fact that it works for upgrades as well. In this way, we can use packages and repositories coming from different Arch based distributions, especially those providing free/libre packages, more easily and smoothly.
.SH PACFREE OPERATIONS
.TP
Besides honoring all Pacman's operations and options (exception made of \-\-ignore and \-\-ignoregroup directives), Pacfree offers the following specific operations:
.TP
.B \-f, \-\-check\-free \fR[package(s)]
Check package(s) against blacklists. With no argument, lists all non-free installed packages. Else, it checks packages specified as further arguments against the blacklists.
.TP
.B \-a, \-\-add\-rule \fR<rule(s)>
Add rule(s) specified as argument(s) to the rules list. If a rule, always in the form 'repo/pkg', is added to the rules list for a given package, this package will always be installed/upgraded from the specified repository, disregarding the repositories order in '/etc/pacman.conf'.
.TP
.B \-d, \-\-del\-rule \fR<rule(s)>
Remove rules from the rules list.
.TP
.B \-l, \-\-list\-rules
List currently enabled rules.
.TP
.B \-L, \-\-add\-repo \fR[repo(s)]
Add and enable free/libre repositories (Parabola). With no argument, the user will be asked whether to enable or not each of the libre repositories. Otherwise, only repositories specified as arguments will be added. Valid repositories are: libre, pcr, kernels, cross, nonprism, libre-multilib, libre-testing, pcr-testing, libre-multilib-testing, and nonprism-testing.
.TP
.B \-x, \-\-del\-repo \fR<repo(s)>
Disable free/libre repositories specified as further arguments.
.TP
.B \-r, \-\-list\-repos \fR[repo(s)]
List currently enabled repositories or check repositories specified as further arguments.
.TP
.B \-u, \-\-upgrademe
Check current upstream version.
.TP
.SH OPTIONS
.TP
.B \-b, \-\-full\-blacklist
Use Parabola's full blacklist instead of the trimmed down one. By default, Pacfree removes from this blacklist packages blacklisted merely because of branding and/or technical issues, like 'pacman', 'grub' or 'filesystem', simply because they are in themselves free. According to Parabola's blacklist, indeed, 'core/filesystem' is non-free; that's why Parabola offers a "free" version of it: 'libre/filesystem'. However, the reason behind this has nothing to do with FOSS: some files provided by 'core/silesystem', like '/usr/lib/os-release' and '/usr/share/factory/etc/issue', contain the name "Arch Linux" instead of "Parabola". That's all: there's no free-software issue here, but just a trademarking one. This is why by default Pacfree removes all these packages from the blacklist.
.TP
.B \-\-color=[auto,always,never]
Enable or disable colored output (default value: auto). \fB\-nc\fR can be used as a short version of \fB\-\-color=never\fR
.SH ALTERNATIVE SYNTAX
For those users coming from Debian/RedHat based systems, the following APT/DNF-like syntax (and its abbreviated form) is supported (the Pacman/Pacfree equivalent is provided in parentheses and is always the recommended way to go):
install,i (\-S)
install-local,il (\-U)
remove,r (\-Rns)
update,refresh,u (\-Sy)
upgrade,sysupgrade,s (\-Syu)
search,query,q (\-Ss)
list-installed,li (\-Qe)
list-installed-native,lin (\-Qen)
list-installed-foreign,lif (\-Qem)
list-installed-deps,lid (\-Qd)
list-no-required,lnr (\-Qt)
list-updates,lu (sudo pacman \-Sy && pacman \-Qu)
info,n (\-Qi)
info-remote,nr (\-Si)
list-files,lf (\-Ql)
provides,p (\-Qo)
provides-remote,pr (\-F)
check,k (\-Qk)
clean,c (\-Sc)
clean-all,ca (\-Scc)
download,d (\-Sw)
history,logs,l [pkg ...] (grep \"pkg ...\" /var/log/pacman.log)
check-free,cf (pacfree \-f)
list-rules,lr (pacfree \-l)
add-rule,ar (pacfree \-a)
del-rule,dr (pacfree \-d)
add-repo,al (pacfree \-L)
del-repo,dl (pacfree \-x)
list-repos,ll ('pacfree \-r' or 'pacman-conf \-l' )
help (\-h)
version (\-V)
.SH EXAMPLES
.TP
pacfree \fIfoo\fR
Update the database, check packages to be upgraded, if any, against the rules list and \fIfoo\fR against both the rules list and the blacklist, upgrade the system, and install \fIfoo\fR
.TP
pacfree \-Syu
Update the database, check packages to be upgraded against the rules list, and upgrade the system.
.TP
pacfree \-S \fIfoo\fR
Check \fIfoo\fR against both the rules list and the blacklist, and, if everything is fine, install the packge
.TP
pacfree \-L libre
Add and enable Parabola's [libre] repository
.TP
pacfree \-a \fIlibre/licenses\fR
Add the rule \fIlibre/licenses\fR to Pacfree rules list
.SH FILES
The configration file is \fI$HOME/.config/pacfree/pacfree.conf\fR
.TP
The repository rules file is \fI$HOME/.config/pacfree/rules.conf\fR
.SH SEE ALSO
.BR pacman (8),
.BR pacman.conf (5)
.SH LICENSE
Pacfree is released under the GNU General Public License version 2.
.SH AUTHOR
L. Abramovich (https://github.com/leo-arch)
.SH BUG REPORTS