1lpf(1) General Commands Manual lpf(1)
2
3
4
6 lpf - Build non-redistributable rpms
7
8
10 lpf <command> [options]
11
12
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
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
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
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
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
150 This is open source software under the MIT license, see the LICENSE
151 file.
152
153
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)