1lpf(1)                      General Commands Manual                     lpf(1)
2
3
4

NAME

6       lpf - Build non-redistributable rpms
7
8

SYNOPSIS

10       lpf <command> [options]
11
12

DESCRIPTION

14       Builds  and  installs non-redistributable rpms by downloading binaries,
15       building and installing a local rpm.
16
17       lpf handles lpf packages named like lpf-spotify-client and target pack‐
18       ages which is spotify-client in this case. The lpf package is basically
19       just a thin recipe how to build the target package which is the  useful
20       one.  Target packages are by definition non-redistributable.
21
22       The basic usage is
23
24           $ lpf update
25
26       which will build and install any not yet installed target packages cor‐
27       responding to installed lpf packages. This also works to update  target
28       packages to match updated lpf packages.
29
30       lpf  packages  are visible as an icon in the GUI. Clicking this icon is
31       the same as running 'lpf update' on the corresponding package.
32
33       To run privileged operations lpf uses sudo(8). See PRIVILEGED  COMMANDS
34       below.
35
36       If DISPLAY is defined in the environment, lpf uses GUI dialogs for user
37       interaction even when invoked from command  line.  To  force  CLI  only
38       operation, unset DISPLAY.
39
40       lpf  has  a notification system for packages needing to be updated. See
41       NOTIFICATIONS below.
42

COMMANDS

44       list:  list all installed lpf packages.
45
46       update [package]:
47              Interactive approve, build and install of given package  or  all
48              packages.
49
50       state [package]:
51              List package state or state of all packages.
52
53       scan [package]:
54              Triage a given package or all packages and update their status.
55
56       approve <package>:
57              Approve a package in state approve-wait.
58
59       build [package]:
60              Build given package or all packages in state build-wait
61
62       rebuild [package]:
63              Force  re-install  of  a  package  where  previous  installation
64              failed.
65
66       install <package>:
67              Install rpms for given package.
68
69       reset <package>
70              Remove all temporary files for package, set state as after fresh
71              install.
72
73       log [package]:
74              Display logs from last build for package, or just last build.
75
76       mute <package>
77              Disable notification messages for package.
78
79       unmute <package>
80              Enable notifications messages for a possibly muted package.
81
82       notify [message]
83              Print  given message or a default  one if there are lpf packages
84              in need of action - typically in need to be updated.
85
86       spec <package>:
87              Copy spec file for package to current directory.
88
89       srpm <package>:
90              Build a srpm file for package in current directory.
91
92       scan-removal <package>:
93              Triage package with the assumption that existing target  package
94              is removed (use in spec scriptlets).
95
96       version
97              Print version data.
98
99

PRIVILEGED COMMANDS

101       All  builds run by lpf is using the pkg-build user which owns the files
102       under /var/lib/lpf. lpf uses sudo(8) to run as pkg-build when  building
103       and  to  run  as  root when installing. lpf installs a sudo config file
104       which allows users in the pkg-build group to make all  required  opera‐
105       tions.
106
107       If  possible,  lpf  uses sudo also to add current user to the pkg-build
108       group.  If the sudoers configuration doesn't allow current user  to  do
109       this,  pkexec(1)  is used instead. This is invoked on the first run. To
110       avoid add user manually using:
111
112
113               $ su -c "usermod -a -G pkg-build $USER"
114
115       After this, log out and in again before proceeding.
116

NOTIFICATIONS

118       lpf is capable of notifying user when lpf packages are in  need  of  an
119       update  e. g., when the lpf package has been updated. Notifications are
120       created when a package enters any state besides 'OK'. They are  cleared
121       once the package enters the 'OK' state.
122
123       GUI  notifications  could  be  enabled from the lpf-gui(1) main window.
124       This installs a daemon listening to package state changes  for  current
125       user,  displaying  gui  messages  as appropriate. The GUI allows muting
126       messages for specific packages.
127
128       Command line notifications could be enabled by adding code to e. g.,
129        ~/.bashlogin.  lpf notify which will output a message similar  to  the
130       well-known  "You  have mail" if lpf packages needs to be updated. Using
131       the 'mute' and 'unmute' commands pin-pointed packages can be ignored in
132       this context (this also affects the GUI messages).
133

FILES

135       /etc/sudoers.d/pkg-build
136              Sudo  configuration,  allows users in pkg-build group to perform
137              several otherwise restricted operations.
138
139       /var/lib/lpf
140              Temporary files: logs, state, built rpm packages etc.
141
142       /usr/share/lpf/packages
143              Installed lpf packages data.
144
145       /var/run/user/$UID/lpf
146              User-specific files: mute files, display locks etc.
147
148

LICENSE

150       This is open source software under the MIT  license,  see  the  LICENSE
151       file.
152
153

SEE ALSO

155       lpf-gui(1)
156                  Gtk-based graphical frontend to lpf.
157
158       https://github.com/leamas/lpf
159                  Source, FSM description, issue tracker, etc.
160
161       sudoers(5)
162                  Format for /etc/sudoers.d/pkg-build
163
164       sudo(8)
165                  Used to run privileged operations.
166
167       pkexec(1)
168                  Used to add user to pkg-build group at initial run.
169
170
171
172
173                                                                        lpf(1)
Impressum