1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright (c) 2017 Peter Tribble.
24  */
25 
26 /*
27  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
28  * Use is subject to license terms.
29  */
30 
31 #ifndef	_PKGADM_MSGS_H
32 #define	_PKGADM_MSGS_H
33 
34 
35 #include <libintl.h>
36 
37 #ifdef	__cplusplus
38 extern "C" {
39 #endif
40 
41 #ifdef	lint
42 #define	gettext(x)	x
43 #endif
44 
45 /* generic messages */
46 #define	MSG_BAD_SUB		gettext(\
47 	"\"%s\" is not a valid subcommand")
48 
49 #define	MSG_MISSING_OPERAND	gettext(\
50 	"-%c requires an operand")
51 
52 #define	MSG_USAGE		gettext(\
53 "usage:\n" \
54 "\n" \
55 "pkgadm dbstatus [-R rootpath]\n" \
56 "\n" \
57 "\t- Returns 'text' - the text install database in use since Solaris 2.0\n" \
58 "\t  is the current install database in use.\n" \
59 "\n" \
60 "pkgadm sync [-R rootpath] [-q]\n" \
61 "\n" \
62 "\t- Writes the contents file and rolls the contents log file.\n" \
63 "\t- Optionally forces the contents file server to quit [-q].\n" \
64 "\n" \
65 "pkgadm -V\n" \
66 "\t- Displays packaging tools version\n" \
67 "\n" \
68 "pkgadm -?\n" \
69 "\t- Shows this help message\n")
70 
71 #define	MSG_WARNING		gettext(\
72 	"WARNING")
73 
74 #define	MSG_ERROR		gettext(\
75 	"ERROR")
76 
77 #define	MSG_T_OPTION_ARGS	gettext(\
78 	"-t option takes 2 or 3 arguments, not %d!\n")
79 
80 #define	MSG_T_RESULT_TWO	gettext(\
81 	"result <%d>: <%s> ~= <%s>\n")
82 
83 #define	MSG_T_RESULT_THREE	gettext(\
84 	"required <%d> actual <%d> <%30s> ~- <%30s>\n")
85 
86 #define	MSG_ERROR		gettext(\
87 	"ERROR")
88 
89 /* warnings */
90 
91 #define	CREATE_PKGDIR_WARN	gettext(\
92 	"Creating directory <%s>\n")
93 
94 #define	MSG_VALID_STALE		gettext(\
95 	"Removing stale lock on <%s> pid <%ld> zid <%ld>")
96 
97 /* errors */
98 
99 #define	MSG_INTERNAL			gettext(\
100 	"Intenal Error <%s>")
101 
102 #define	MSG_OPEN			gettext(\
103 	"Cannot open <%s> for reading")
104 
105 #define	MSG_OPEN_WRITE			gettext(\
106 	"Cannot open <%s> for writing")
107 
108 #define	ERR_LOG_FAIL			gettext(\
109 	"Failed to log message using format <%s>")
110 
111 #define	MSG_ZONES_MISSING_REQUEST	gettext(\
112 	"Must specify operation to perform\n")
113 
114 #define	MSG_LOCK_ALTROOT_CANTCREATE	gettext(\
115 	"lock: cannot create alternative root directory <%s>: %s\n")
116 
117 #define	MSG_LOCK_ALTROOT_NONEXIST	gettext(\
118 	"lock: argument to -R <%s> is not a directory: %s\n")
119 
120 #define	MSG_LOCK_ROOTDIR_INVALID	gettext(\
121 	"lock: lock file base directory <%s> not valid: %s\n")
122 
123 #define	MSG_LOCK_WFLAG_BADINT	gettext(\
124 	"The integer value <%s> given to the -W option includes an " \
125 	"invalid character: \"%c\"\n")
126 
127 #define	MSG_LOCK_pFLAG_BADINT	gettext(\
128 	"The integer value <%s> given to the -p option includes an " \
129 	"invalid character: \"%c\"\n")
130 
131 #define	MSG_LOCK_zFLAG_BADINT	gettext(\
132 	"The integer value <%s> given to the -z option includes an " \
133 	"invalid character: \"%c\"\n")
134 
135 #define	MSG_LOCK_nFLAG_BADINT	gettext(\
136 	"The integer value <%s> given to the -n option includes an " \
137 	"invalid character: \"%c\"\n")
138 
139 #define	MSG_LOCK_ar_TOGETHER	gettext(\
140 	"lock: The -a and -r options cannot be used together: "\
141 	"specify only one.\n")
142 
143 #define	MSG_LOCK_kARG_TOOLONG	gettext(\
144 	"Argument to -k is <%d> characters: may not exceed <%d> characters\n")
145 
146 #define	MSG_LOCK_oARG_TOOLONG	gettext(\
147 	"Argument to -o is <%d> characters: may not exceed <%d> characters\n")
148 
149 #define	MSG_LOCK_RARG_NOT_ABSOLUTE	gettext(\
150 	"Argument to -R must be absolute path: %s")
151 
152 #define	MSG_LOCK_WFLAG_ERROR	gettext(\
153 	"Argument to -W has problem with wait interval <%s>: %s")
154 
155 #define	MSG_LOCK_pFLAG_ERROR	gettext(\
156 	"Argument to -p has problem with process i.d. value <%s>: %s")
157 
158 #define	MSG_LOCK_zFLAG_ERROR	gettext(\
159 	"Argument to -p has problem with zone i.d. value <%s>: %s")
160 
161 #define	MSG_LOCK_nFLAG_ERROR	gettext(\
162 	"Argument to -n has problem with maximum number of retries " \
163 	"value <%s>: %s")
164 
165 #define	MSG_LOCK_es_TOGETHER	gettext(\
166 	"lock: The -e and -s options cannot be used together: "\
167 	"specify only one.\n")
168 
169 #define	MSG_LOCK_ak_TOGETHER	gettext(\
170 	"lock: The -k option cannot be used with the -a option.\n")
171 
172 #define	MSG_LOCK_e_without_a	gettext(\
173 	"lock: The -e option can only be used with the -a option.\n")
174 
175 #define	MSG_LOCK_s_without_a	gettext(\
176 	"lock: The -s option can only be used with the -a option.\n")
177 
178 #define	MSG_LOCK_ACQUIRE_KEYMISMATCH	gettext(\
179 	"cannot acquire %s lock on <%s>: object locked and specified key " \
180 	"does not match")
181 
182 #define	MSG_LOCK_ACQUIRE_ERROR	gettext(\
183 	"cannot determine if object <%s> key <%s> is locked: %s")
184 
185 #define	MSG_LOCK_ACQUIRE_TIMEDOUT	gettext(\
186 	"cannot acquire %s lock on <%s> key <%s>: object locked, no key " \
187 	"was specified, and the wait timed out")
188 
189 #define	MSG_LOCK_ACQUIRE_WAITING	gettext(\
190 	"object <%s> is locked: waiting for object to become available")
191 
192 #define	MSG_LOCK_ACQUIRE_REOPEN_FAILED	gettext(\
193 	"cannot reopen lock file after waiting for lock on object " \
194 	"<%s> to be released")
195 
196 #define	MSG_LOCK_RELEASE_NOTLOCKED	gettext(\
197 	"cannot release lock on <%s> key <%s>: object not locked and " \
198 	"a key was specified")
199 
200 #define	MSG_LOCK_RELEASE_LOCKED		gettext(\
201 	"cannot release lock on <%s> key <%s>: object locked but no " \
202 	"key was specified")
203 
204 #define	MSG_LOCK_RELEASE_NOTFOUND	gettext(\
205 	"cannot release lock on <%s> key <%s>: object is not locked")
206 
207 #define	MSG_LOCK_RELEASE_KEYMISMATCH	gettext(\
208 	"cannot release lock on <%s>: object locked and specified key " \
209 	"does not match")
210 
211 #define	MSG_LOCK_RELEASE_ERROR		gettext(\
212 	"cannot determine if object <%s> key <%s> is locked")
213 
214 #define	MSG_LOCK_EXEC_ACCESS	gettext(\
215 	"cannot execute command <%s>: %s")
216 
217 #define	MSG_LOCK_EXEC_NOINPUT	gettext(\
218 	"cannot open input file <%s>: %s")
219 
220 #define	MSG_LOCK_EXEC_NOPIPE	gettext(\
221 	"cannot create pipe: %s")
222 
223 #define	MSG_LOCK_FINDLOCK_LSEEK_FAILURE	gettext(\
224 	"cannot find lock <%s> key <%s>: lseek failure: %s")
225 
226 #define	MSG_LOCK_ADDLOCK_PWRITE_FAILURE	gettext(\
227 	"cannot create %s lock for object <%s>: pwrite failure: %s")
228 
229 #define	MSG_LOCK_ADDLOCK_LSEEK_FAILURE	gettext(\
230 	"cannot create %s lock for object <%s>: lseek failure: %s")
231 
232 #define	MSG_LOCK_INCLOCK_PWRITE_FAILURE	gettext(\
233 	"cannot increment %s lock for object <%s>: pwrite failure: %s")
234 
235 #define	MSG_LOCK_DECLOCK_PWRITE_FAILURE	gettext(\
236 	"cannot decrement %s lock for object <%s>: pwrite failure: %s")
237 
238 #define	MSG_LOCK_DECLOCK_PREAD_FAILURE	gettext(\
239 	"cannot decrement %s lock for object <%s>: pread failure: %s")
240 
241 #define	MSG_LOCK_DECLOCK_LSEEK_FAILURE	gettext(\
242 	"cannot decrement %s lock for object <%s>: lseek failure: %s")
243 
244 #define	MSG_LOCK_DECLOCK_FTRUNCATE_FAILURE	gettext(\
245 	"cannot decrement %s lock for object <%s>: ftruncate failure: %s")
246 
247 /*
248  * i18n:
249  * next two messages grouped together
250  */
251 
252 #define	MSG_LOCK_ACQUIRE_BUSY_QUASI	gettext(\
253 	"cannot acquire %s lock on <%s> key <%s>: object matches wildcard " \
254 	"<%s> lock%s")
255 #define	MSG_LOCK_ACQUIRE_BUSY_FIRST	gettext(\
256 	"cannot acquire %s lock on <%s> key <%s>: object <%s> is locked <%s>%s")
257 
258 /*
259  * i18n: note this message may be appended to the previous message
260  * by supplying it to the final "%s" at the end of the line above;
261  * that is either:
262  *  cannot acquire %s lock on <%s> key <%s>: object is locked <%s>
263  * or:
264  *  cannot acquire %s lock on <%s> [...] is locked <%s> and no key specified
265  */
266 
267 #define	MSG_LOCK_ACQUIRE_BUSY_ADDITIONAL	gettext(\
268 	" and no key specified")
269 
270 /*
271  * i18n: note these two "messages" are inserted into other
272  * messages, such as:
273  * 	cannot acquire %s lock on <%s>
274  * will be either:
275  *	cannot acquire shared lock on <%s>
276  * or
277  *	cannot acquire exclusive lock on <%s>
278  */
279 
280 #define	MSG_LOCK_EXC	gettext(\
281 	"exclusive")
282 
283 #define	MSG_LOCK_SHR		gettext(\
284 	"shared")
285 
286 /*
287  * i18n: note these messages are "debugging" messages and will normally
288  * not be seen unless debugging has been enabled for problem root causing
289  * so they are not meant to be perfectly "human readable"
290  */
291 
292 #define	MSG_VALID_NOPID		gettext(\
293 	"validate lock <%s>: VALID (no pid)")
294 
295 #define	MSG_VALID_BADZID	gettext(\
296 	"validate lock <%s>: VALID (lock zid <%ld> this zid <%ld>)")
297 
298 #define	MSG_VALID_ZIDOK	gettext(\
299 	"validate lock <%s>: zone i.d.s match (lock zid <%ld> this zid <%ld>)")
300 
301 #define	MSG_VALID_OK		gettext(\
302 	"validate lock <%s> pid <%ld> path <%s>: VALID")
303 
304 #define	MSG_VALID_NOTOK		gettext(\
305 	"validate lock <%s> pid <%ld> path <%s>: NOT VALID")
306 
307 #define	MSG_LCKMCH_ENTRY	gettext(\
308 	"lockMatch: *** BEGIN *** compare objects <%s> <%s>")
309 
310 #define	MSG_LCKMCH_FSTNODE	gettext(\
311 	"lockMatch: first lock node (%d) <%s>")
312 
313 #define	MSG_LCKMCH_SCNDNODE	gettext(\
314 	"lockMatch: second lock node (%d) <%s>")
315 
316 #define	MSG_LCKMCH_NODES	gettext(\
317 	"lockMatch: first lock node <%s> prefix <%s> (%d) second lock " \
318 	" node <%s> prefix <%s> (%d)")
319 
320 #define	MSG_LCKMCH_DIRMCH	gettext(\
321 	"lockMatch: no prefix direct comparison: match: <%s> <%s>")
322 
323 #define	MSG_LCKMCH_DIRNOMCH	gettext(\
324 	"lockMatch: no prefix direct comparison: NO MATCH: <%s> <%s>")
325 
326 #define	MSG_LCKMCH_PFXMCH	gettext(\
327 	"lockMatch: prefix comparison: match: <%s> <%s>")
328 
329 #define	MSG_LCKMCH_PFXNOMCH	gettext(\
330 	"lockMatch: prefix comparison: NO MATCH: <%s> <%s>")
331 
332 #define	MSG_LCKMCH_FSTLCK	gettext(\
333 	"lockMatch: first lock index (%d) last scanned node <%s> prefix " \
334 	"<%s> (%d)")
335 
336 #define	MSG_LCKMCH_SCNDLCK	gettext(\
337 	"lockMatch: second lock index (%d) last scanned node <%s> prefix " \
338 	"<%s> (%d)")
339 
340 #define	MSG_LCKMCH_ABSNOMCH	gettext(\
341 	"lockMatch: absolute locks: NO MATCH: <%s> <%s>")
342 
343 #define	MSG_LCKMCH_OBJMCH	gettext(\
344 	"lockMatch: object locks: match: <%s> <%s>")
345 
346 #define	MSG_LCKMCH_OVLPNOMCH	gettext(\
347 	"lockMatch: nonmatching overlapping objects: <%s> <%s> before " \
348 	"(%d) <%s>")
349 
350 #define	MSG_LCKMCH_SAME	gettext(\
351 	"lockMatch: locks begin with same node - compare: <%s> <%s> at <%s>")
352 
353 #define	MSG_LCKMCH_SCNDSUB	gettext(\
354 	"lockMatch: second lock <%s> subset of <%s> at (%d) <%s>")
355 
356 #define	MSG_LCKMCH_FRSTSUB	gettext(\
357 	"lockMatch: first lock <%s> subset of <%s> at (%d) <%s>")
358 
359 #define	MSG_LCKMCH_DONTKNOW	gettext(\
360 	"lockMatch: unable to determine how to compare locks: <%s> <%s>: " \
361 	"using direct comparision")
362 
363 #define	MSG_LCKMCH_READY	gettext(\
364 	"lockMatch: comparing nodes locks <%s> <%s>")
365 
366 #define	MSG_LCKMCH_NODEFAIL	gettext(\
367 	"lockMatch: node (%d) comparison: NO MATCH: <%s> != <%s>")
368 
369 #define	MSG_LCKMCH_NODEOK	gettext(\
370 	"lockMatch: node (%d) comparision: match: <%s> == <%s>")
371 
372 #define	MSG_LCKMCH_MATCHOK	gettext(\
373 	"lockMatch: locks match: <%s> == <%s>")
374 
375 #define	MSG_LOCK_EXEC_RESULTS	gettext(\
376 	"command <%s> executed: pid <%d> errno <0x%04x> status <0x%04x> " \
377 	"final status <0x%04x> output <%s>")
378 
379 #define	MSG_LOCK_GENUID_INTERNAL	gettext(\
380 	"generated new unique key using date: %s")
381 
382 #define	MSG_LOCK_DECLOCK_DECING	gettext(\
383 	"decrement <%s> lock count record <%d> count <%d>")
384 
385 #define	MSG_LOCK_DECLOCK_DONE	gettext(\
386 	"decrement lock record <%d> count <%d> object <%s> key <%s>")
387 
388 #define	MSG_LOCK_DECLOCK_REMOVE	gettext(\
389 	"decrement lock remove record lastPos %ld last record %d " \
390 	"current record %d")
391 
392 #define	MSG_LOCK_DECLOCK_LASTONE	gettext(\
393 	"decrement lock removing <%s> lock last record <%d> " \
394 	"truncating to <%ld>")
395 
396 #define	MSG_LOCK_DECLOCK_REMOVING	gettext(\
397 	"decrement lock removing record <%d> last record <%d> " \
398 	"truncating to <%ld>")
399 
400 #define	MSG_LOCK_INCLOCK_ENTRY	gettext(\
401 	"increment <%s> lock count record <%d> count <%d>")
402 
403 #define	MSG_LOCK_INCLOCK_DONE	gettext(\
404 	"increment lock record <%d> count <%d> object <%s> key <%s>")
405 
406 #define	MSG_LOCK_ADDLOCK_ADDING	gettext(\
407 	"adding %s lock pos <%d> object <%s> key <%s> pid <%ld> zid <%ld>")
408 
409 #define	MSG_LOCK_FINDLOCK_ENTRY	gettext(\
410 	"find lock object <%s> key <%s>")
411 
412 #define	MSG_LOCK_FINDLOCK_READRECORD	gettext(\
413 	"find lock read record <%d>: count <%d> object <%s> key <%s> pid " \
414 	"<%ld> zid <%ld>")
415 
416 #define	MSG_LOCK_FINDLOCK_FOUND	gettext(\
417 	"find lock record found")
418 
419 #define	MSG_LOCK_FINDLOCK_NOTFOUND	gettext(\
420 	"find lock record not found")
421 
422 #define	MSG_LOCK_OPENFILE_ENTRY	gettext(\
423 	"open lock file root <%s> file <%s>")
424 
425 #define	MSG_LOCK_OPENFILE_SLEEPING	gettext(\
426 	"open lock file busy <%s>: sleeping <%d>")
427 
428 #define	MSG_LOCK_OPENFILE_FAILURE	gettext(\
429 	"open lock file could not be opened: %s")
430 
431 #define	MSG_LOCK_OPENFILE_SLEEP2	gettext(\
432 	"open lock file cannot obtain record lock <%s>: sleeping <%d>")
433 
434 #define	MSG_LOCK_OPENFILE_FAIL2	gettext(\
435 	"open lock file could not obtain record lock: <%s>")
436 
437 #define	MSG_LOCK_OPENFILE_SUCCESS	gettext(\
438 	"open lock file: opened and locked fd <%d>")
439 
440 #define	MSG_LOCK_STATUS_READRECORD	gettext(\
441 	"status read record <%d>: count <%d> object <%s> key <%s> pid <%ld> " \
442 	"zid <%ld>")
443 
444 #define	MSG_LOCK_STATUS_ENTRY	gettext(\
445 	"status key=<%s> object=<%s>")
446 
447 #define	MSG_LOCK_RELEASE_FOUND		gettext(\
448 	"object <%s> key <%s> is locked: decrementing lock count")
449 
450 #define	MSG_LOCK_RELEASE_ENTRY	gettext(\
451 	"release lock key=<%s> object=<%s> quiet=<%d>")
452 
453 #define	MSG_LOCK_RELEASE_FINDRESULT	gettext(\
454 	"release lock result <%d> record <%d>")
455 
456 #define	MSG_LOCK_ACQUIRE_FOUND_INC	gettext(\
457 	"object <%s> key <%s> is locked: incrementing <%s> lock count")
458 
459 #define	MSG_LOCK_ACQUIRE_ENTRY	gettext(\
460 	"acquire lock key=<%s> object=<%s> quiet=<%d> exclusive=<%d>")
461 
462 #define	MSG_LOCK_ACQUIRE_FINDRESULT	gettext(\
463 	"acquire %s lock result <%d> record <%d>")
464 
465 #define	MSG_LOCK_ACQUIRE_LOCKED_SHARED	gettext(\
466 	"object <%s> key <%s> is locked but shared: incrementing lock count")
467 
468 #define	MSG_LOCK_ACQUIRE_NOTLOCKED	gettext(\
469 	"cannot acquire %s lock on <%s> key <%s>: object not locked " \
470 	"and non-matching key specified")
471 
472 #define	MSG_LOCK_ACQUIRE_NOTFOUND	gettext(\
473 	"acquiring %s lock on object <%s>")
474 
475 #ifdef	__cplusplus
476 }
477 #endif
478 
479 #endif /* _PKGADM_MSGS_H */
480