97 | http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100509 |
97 | http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100509 |
98 +--------------------------------------------------------------------------- |
98 +--------------------------------------------------------------------------- |
99 Index: lib/psm.c |
99 Index: lib/psm.c |
100 --- lib/psm.c 5 Jun 2003 12:43:18 -0000 1.1.1.6 |
100 --- lib/psm.c 5 Jun 2003 12:43:18 -0000 1.1.1.6 |
101 +++ lib/psm.c 13 Sep 2006 13:38:29 -0000 |
101 +++ lib/psm.c 13 Sep 2006 13:38:29 -0000 |
102 @@ -1106,11 +1108,13 @@ |
102 @@ -1108,11 +1108,13 @@ |
103 const char ** triggerProgs; |
103 const char ** triggerProgs; |
104 int_32 * triggerIndices; |
104 int_32 * triggerIndices; |
105 const char * sourceName; |
105 const char * sourceName; |
106 + const char * triggerName; |
106 + const char * triggerName; |
107 rpmRC rc = RPMRC_OK; |
107 rpmRC rc = RPMRC_OK; |
111 xx = headerNVR(sourceH, &sourceName, NULL, NULL); |
111 xx = headerNVR(sourceH, &sourceName, NULL, NULL); |
112 + xx = headerNVR(triggeredH, &triggerName, NULL, NULL); |
112 + xx = headerNVR(triggeredH, &triggerName, NULL, NULL); |
113 |
113 |
114 trigger = rpmdsInit(rpmdsNew(triggeredH, RPMTAG_TRIGGERNAME, scareMem)); |
114 trigger = rpmdsInit(rpmdsNew(triggeredH, RPMTAG_TRIGGERNAME, scareMem)); |
115 if (trigger == NULL) |
115 if (trigger == NULL) |
116 @@ -1149,7 +1153,7 @@ |
116 @@ -1151,7 +1153,7 @@ |
117 { int arg1; |
117 { int arg1; |
118 int index; |
118 int index; |
119 |
119 |
120 - arg1 = rpmdbCountPackages(rpmtsGetRdb(ts), Name); |
120 - arg1 = rpmdbCountPackages(rpmtsGetRdb(ts), Name); |
121 + arg1 = rpmdbCountPackages(rpmtsGetRdb(ts), triggerName); |
121 + arg1 = rpmdbCountPackages(rpmtsGetRdb(ts), triggerName); |
132 | course. |
132 | course. |
133 +--------------------------------------------------------------------------- |
133 +--------------------------------------------------------------------------- |
134 Index: lib/psm.c |
134 Index: lib/psm.c |
135 --- lib/psm.c 5 Jun 2003 12:43:18 -0000 1.1.1.6 |
135 --- lib/psm.c 5 Jun 2003 12:43:18 -0000 1.1.1.6 |
136 +++ lib/psm.c 13 Sep 2006 13:38:32 -0000 |
136 +++ lib/psm.c 13 Sep 2006 13:38:32 -0000 |
137 @@ -1710,6 +1714,7 @@ |
137 @@ -1714,6 +1714,7 @@ |
138 |
138 |
139 uid = fi->uid; |
139 uid = fi->uid; |
140 gid = fi->gid; |
140 gid = fi->gid; |
141 + if (!headerIsEntry(fi->h, RPMTAG_SOURCEPACKAGE)) { |
141 + if (!headerIsEntry(fi->h, RPMTAG_SOURCEPACKAGE)) { |
142 if (fi->fuser && unameToUid(fi->fuser[i], &uid)) { |
142 if (fi->fuser && unameToUid(fi->fuser[i], &uid)) { |
143 rpmMessage(RPMMESS_WARNING, |
143 rpmMessage(RPMMESS_WARNING, |
144 _("user %s does not exist - using root\n"), |
144 _("user %s does not exist - using root\n"), |
145 @@ -1727,6 +1732,7 @@ |
145 @@ -1731,6 +1732,7 @@ |
146 /* XXX this diddles header memory. */ |
146 /* XXX this diddles header memory. */ |
147 fi->fmodes[i] &= ~S_ISGID; /* turn off the sgid bit */ |
147 fi->fmodes[i] &= ~S_ISGID; /* turn off the sgid bit */ |
148 } |
148 } |
149 + } |
149 + } |
150 if (fi->fuids) fi->fuids[i] = uid; |
150 if (fi->fuids) fi->fuids[i] = uid; |
156 | RPM uses everywhere else, too. |
156 | RPM uses everywhere else, too. |
157 +--------------------------------------------------------------------------- |
157 +--------------------------------------------------------------------------- |
158 Index: lib/psm.c |
158 Index: lib/psm.c |
159 --- lib/psm.c 5 Jun 2003 12:43:18 -0000 1.1.1.6 |
159 --- lib/psm.c 5 Jun 2003 12:43:18 -0000 1.1.1.6 |
160 +++ lib/psm.c 13 Sep 2006 13:38:33 -0000 |
160 +++ lib/psm.c 13 Sep 2006 13:38:33 -0000 |
161 @@ -2027,7 +2033,8 @@ |
161 @@ -2033,7 +2033,8 @@ |
162 case PSM_CHROOT_IN: |
162 case PSM_CHROOT_IN: |
163 { const char * rootDir = rpmtsRootDir(ts); |
163 { const char * rootDir = rpmtsRootDir(ts); |
164 /* Change root directory if requested and not already done. */ |
164 /* Change root directory if requested and not already done. */ |
165 - if (rootDir != NULL && !rpmtsChrootDone(ts) && !psm->chrootDone) { |
165 - if (rootDir != NULL && !rpmtsChrootDone(ts) && !psm->chrootDone) { |
166 + if (rootDir != NULL && !(rootDir[0] == '/' && rootDir[1] == '\0') |
166 + if (rootDir != NULL && !(rootDir[0] == '/' && rootDir[1] == '\0') |