+++ /dev/null
-diff -Nru rpm-4.1/lib/rpmrc.c rpm-4.1.new/lib/rpmrc.c
---- rpm-4.1/lib/rpmrc.c Tue Aug 20 16:53:44 2002
-+++ rpm-4.1.new/lib/rpmrc.c Tue Mar 11 18:41:48 2003
-@@ -1820,23 +1820,37 @@
- /* Expand ~/ to $HOME/ */
- fn[0] = '\0';
- if (r[0] == '~' && r[1] == '/') {
-+ const char * etc_dir = getenv("HOME_ETC");
- const char * home = getenv("HOME");
-- if (home == NULL) {
-- /* XXX Only /usr/lib/rpm/rpmrc must exist in default rcfiles list */
-- if (rcfiles == rpmRcfiles && myrcfiles != r)
-- continue;
-- rpmError(RPMERR_RPMRC, _("Cannot expand %s\n"), r);
-- rc = 1;
-- break;
-- }
-- if (strlen(home) > (sizeof(fn) - strlen(r))) {
-- rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME is too large.\n"),
-- r);
-- rc = 1;
-- break;
-+ if (etc_dir) {
-+ if (strlen(etc_dir) > (sizeof(fn) - strlen(r))) {
-+ rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME_ETC is too large.\n"),r);
-+ rc = 1;
-+ break;
-+ }
-+ strcpy(fn, etc_dir);
-+ strncat(fn, "/", sizeof(fn) - strlen(fn));
-+ r+=2;
-+ } else {
-+ if (home == NULL) {
-+ /* XXX Only /usr/lib/rpm/rpmrc must exist in default rcfiles list */
-+ if (rcfiles == rpmRcfiles && myrcfiles != r)
-+ continue;
-+ rpmError(RPMERR_RPMRC, _("Cannot expand %s\n"), r);
-+ rc = 1;
-+ break;
-+ }
-+ if (strlen(home) > (sizeof(fn) - strlen(r))) {
-+ rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME is too large.\n"),
-+ r);
-+ rc = 1;
-+ break;
-+ }
-+ strcpy(fn, home);
-+ r++;
- }
-- strcpy(fn, home);
-- r++;
-+
-+
- }
- strncat(fn, r, sizeof(fn) - (strlen(fn) + 1));
- fn[sizeof(fn)-1] = '\0';
---- rpm-4.5/po/pl.po~ 2008-04-13 03:27:17.000000000 +0300
-+++ rpm-4.5/po/pl.po 2008-04-13 03:27:53.561742210 +0300
-@@ -3088,6 +3088,10 @@
- msgid "Cannot read %s, HOME is too large.\n"
- msgstr "Nie mo¿na odczytaæ %s, HOME jest zbyt du¿e.\n"
-
-+#: lib/rpmrc.c:1935
-+msgid "Cannot read %s, HOME_ETC is too large.\n"
-+msgstr "Nie mo¿na odczytaæ %s, HOME_ETC jest zbyt du¿e.\n"
-+
- #: lib/rpmrc.c:1961
- #, c-format
- msgid "Unable to open %s for reading: %s.\n"