19 #define _RPMTS_INTERNAL
23 #define _RPMGI_INTERNAL
29 #define _RPMROLLBACK_INTERNAL
30 #include <rpmrollback.h>
67 float pct = (float) (total ? (((
float) amount) / total) : 1);
70 if (isatty (STDOUT_FILENO)) {
76 fprintf(stdout,
"(%3d%%)", (
int)((100 * pct) + 0.5));
77 for (i = 0; i < (rpmcliHashesTotal + 6); i++)
78 (
void) putchar (
'\b');
84 (void) fflush(stdout);
89 if (isatty(STDOUT_FILENO)) {
95 fprintf(stdout,
" [%3d%%]", (
int)((100 * pct) + 0.5));
97 fprintf(stdout,
"\n");
99 (void) fflush(stdout);
118 int flags = (int) ((
long)data);
121 const char * filename = (
const char *)key;
123 static FD_t fd = NULL;
128 if (filename == NULL || filename[0] ==
'\0')
130 fd =
Fopen(filename,
"r%{?_rpmgio}");
134 int ut =
urlPath(filename, NULL);
137 fd =
Fopen(filename,
"r%{?_rpmgio}");
142 if (fd == NULL ||
Ferror(fd)) {
150 fd =
fdLink(fd,
"persist (showProgress)");
159 fd =
fdFree(fd,
"persist (showProgress)");
175 if (isatty (STDOUT_FILENO))
178 fprintf(stdout,
"%-28.28s", s);
179 (void) fflush(stdout);
182 char * t =
rpmExpand(
"%{?___NVRA}%{!?___NVRA:%%{NAME}-%%{VERSION}-%%{RELEASE}}", NULL);
184 fprintf(stdout,
"%s\n", s);
185 (void) fflush(stdout);
195 fprintf(stdout,
"%%%% %f\n", (
double) (total
196 ? ((((
float) amount) / total) * 100)
198 else if (flags & INSTALL_HASH)
201 (void) fflush(stdout);
208 if (!(flags & INSTALL_LABEL))
210 if (flags & INSTALL_HASH)
211 fprintf(stdout,
"%-28s",
_(
"Preparing..."));
213 fprintf(stdout,
"%s\n",
_(
"Preparing packages for installation..."));
214 (void) fflush(stdout);
218 if (flags & INSTALL_HASH)
228 if (!(flags & INSTALL_LABEL))
230 if (flags & INSTALL_HASH)
231 fprintf(stdout,
"%-28s\n",
_(
"Repackaging..."));
233 fprintf(stdout,
"%s\n",
_(
"Repackaging erased files..."));
234 (void) fflush(stdout);
238 if (amount && (flags & INSTALL_HASH))
245 if (flags & INSTALL_HASH)
249 if (!(flags & INSTALL_LABEL))
251 if (flags & INSTALL_HASH)
252 fprintf(stdout,
"%-28s\n",
_(
"Upgrading..."));
254 fprintf(stdout,
"%s\n",
_(
"Upgrading packages..."));
255 (void) fflush(stdout);
295 if (ts->suggests != NULL && ts->nsuggests > 0) {
300 for (i = 0; i < ts->nsuggests && (s = ts->suggests[i]) != NULL;
301 ts->suggests[i++] = s =
_free(s))
305 ts->suggests =
_free(ts->suggests);
348 if (recOffset == 0) {
369 const char * fn = NULL;
373 if (av != NULL && av[0] != NULL)
374 ftsp =
Fts_open((
char *
const *)av, _ftsOpts, NULL);
376 while((fts =
Fts_read(ftsp)) != NULL) {
382 if (fts_level > 0 && fts->
fts_level >= fts_level)
425 "%{?_rpmgi_pattern_glob}"
426 "%{!?_rpmgi_pattern_glob:.}",
431 "%{?_rpmgi_pattern_regex:%{_rpmgi_pattern_regex ", arg,
"}}"
432 "%{!?_rpmgi_pattern_regex:", arg,
"-[^-]+-[^-]+\\.[^.]+\\.rpm$}",
445 if (xx || dav == NULL)
449 for (i = 0; i < dac; i++) {
459 for (i = 0; i < nac; i++) {
461 nav[i] =
_free(nav[i]);
466 if (nac > 0 && nav != NULL)
480 mirePattern =
_free(mirePattern);
497 HE_t he = memset(
alloca(
sizeof(*he)), 0,
sizeof(*he));
508 if (argv == NULL)
goto exit;
522 time_t ttid = (time_t)ia->
arbtid;
524 ctime(&ttid), ia->
arbtid);
550 if (relocations->
newPath == NULL)
559 const char * fn = NULL;;
619 if (xx && he->
c == 1) {
627 _(
"package %s is not relocatable\n"), he->
p.
str);
643 assert(xx != 0 && he->
p.
str != NULL);
679 if (numFailed)
goto exit;
698 numFailed += (rc < 0 ? numRPMS : rc);
701 if (numFailed)
goto exit;
725 if (argv == NULL)
return 0;
745 time_t ttid = (time_t)ia->
arbtid;
747 ctime(&ttid), ia->
arbtid);
762 for (arg = argv; *arg; arg++) {
791 if (numFailed == 0 && numRPMS > 0) {
806 numFailed += (rc < 0 ? numRPMS : rc);
816 const char ** specFilePtr,
const char ** cookie)
821 fd =
Fopen(arg,
"r%{?_rpmgio}");
822 if (fd == NULL ||
Ferror(fd)) {
824 if (fd != NULL) (void)
Fclose(fd);
829 fprintf(stdout,
_(
"Installing %s\n"), arg);
841 if (specFilePtr && *specFilePtr)
842 *specFilePtr =
_free(*specFilePtr);
843 if (cookie && *cookie)
844 *cookie =
_free(*cookie);