rpms/rpm/devel rpm-4.7.90-devel-autodep.patch, NONE, 1.1 rpm-4.7.90-fedora-specspo.patch, NONE, 1.1 .cvsignore, 1.38, 1.39 rpm.spec, 1.369, 1.370 sources, 1.144, 1.145 desktop-file.prov, 1.1, NONE fontconfig.prov, 1.3, NONE rpm-4.6.0-fedora-specspo.patch, 1.1, NONE rpm-4.7.0-devel-autodep.patch, 1.2, NONE rpm-4.7.0-extra-provides.patch, 1.3, NONE rpm-4.7.1-bugurl.patch, 1.2, NONE rpm-4.7.1-python-bytecompile.patch, 1.1, NONE rpm-4.7.2-chmod-selinux.patch, 1.2, NONE rpm-4.7.2-pgp-subkey.patch, 1.1, NONE rpm-4.7.2-rpmfc-unknown.patch, 1.1, NONE rpm-4.7.2-sign-passcheck.patch, 1.1, NONE
Panu Matilainen
pmatilai at fedoraproject.org
Mon Dec 7 13:35:12 UTC 2009
Author: pmatilai
Update of /cvs/pkgs/rpms/rpm/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv20047
Modified Files:
.cvsignore rpm.spec sources
Added Files:
rpm-4.7.90-devel-autodep.patch rpm-4.7.90-fedora-specspo.patch
Removed Files:
desktop-file.prov fontconfig.prov
rpm-4.6.0-fedora-specspo.patch rpm-4.7.0-devel-autodep.patch
rpm-4.7.0-extra-provides.patch rpm-4.7.1-bugurl.patch
rpm-4.7.1-python-bytecompile.patch
rpm-4.7.2-chmod-selinux.patch rpm-4.7.2-pgp-subkey.patch
rpm-4.7.2-rpmfc-unknown.patch rpm-4.7.2-sign-passcheck.patch
Log Message:
- update to rpm 4.8.0-beta1
- drop patches + other sources now included upstream
- add conflict for current ocaml-runtime
rpm-4.7.90-devel-autodep.patch:
rpmfc.c | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 105 insertions(+), 2 deletions(-)
--- NEW FILE rpm-4.7.90-devel-autodep.patch ---
diff -up rpm-4.7.90.git9278/build/rpmfc.c.devel-autodep rpm-4.7.90.git9278/build/rpmfc.c
--- rpm-4.7.90.git9278/build/rpmfc.c.devel-autodep 2009-09-01 10:45:07.000000000 +0300
+++ rpm-4.7.90.git9278/build/rpmfc.c 2009-09-01 11:00:15.000000000 +0300
@@ -501,7 +501,7 @@ static const struct rpmfcTokens_s const
{ "GLS_BINARY_LSB_FIRST", RPMFC_WHITE|RPMFC_INCLUDE },
{ " DB ", RPMFC_WHITE|RPMFC_INCLUDE },
- { "symbolic link to", RPMFC_SYMLINK },
+ { "symbolic link to", RPMFC_SYMLINK|RPMFC_INCLUDE },
{ "socket", RPMFC_DEVICE },
{ "special", RPMFC_DEVICE },
{ " text", RPMFC_TEXT|RPMFC_INCLUDE },
@@ -663,6 +663,105 @@ rpmds rpmfcRequires(rpmfc fc)
/**
+ * Ensure that symlinks for shared libs generate a dep on the shared lib
+ * @param fc file classifier
+ * @return 0 on success
+ */
+static int rpmfcSYMLINK(rpmfc fc)
+{
+ const char * fn = fc->fn[fc->ix];
+ struct stat sb;
+ int fdno;
+
+ if (fc->skipReq)
+ return 0;
+
+ if (stat(fn, &sb) < 0)
+ return -1;
+ if (S_ISLNK(sb.st_mode))
+ return -1;
+
+ fdno = open(fn, O_RDONLY);
+ if (fdno < 0) {
+ return fdno;
+ }
+
+#if HAVE_GELF_H && HAVE_LIBELF
+ Elf * elf = NULL;
+ GElf_Ehdr ehdr_mem, * ehdr;
+ int isElf64 = 0;
+ int i, cnt;
+ char * soname = NULL;
+ rpmds ds;
+
+ (void) elf_version(EV_CURRENT);
+ elf = NULL;
+ if ((elf = elf_begin (fdno, ELF_C_READ_MMAP, NULL)) == NULL
+ || elf_kind(elf) != ELF_K_ELF
+ || (ehdr = gelf_getehdr(elf, &ehdr_mem)) == NULL
+ || ehdr->e_type != ET_DYN)
+ goto exit;
+
+/* alpha uses /lib, not /lib64 so don't add (64bit) deps */
+#if !defined(__alpha__)
+ isElf64 = ehdr->e_ident[EI_CLASS] == ELFCLASS64;
+#endif
+
+ for (i = 0; i < ehdr->e_phnum; ++i) {
+ GElf_Phdr phdr_mem;
+ GElf_Phdr *phdr = gelf_getphdr (elf, i, &phdr_mem);
+ GElf_Shdr shdr_mem;
+ Elf_Data * data = NULL;
+ Elf_Scn * scn;
+ GElf_Shdr *shdr;
+
+ if (phdr == NULL || phdr->p_type != PT_DYNAMIC)
+ continue;
+
+ scn = gelf_offscn(elf, phdr->p_offset);
+ shdr = gelf_getshdr(scn, &shdr_mem);
+
+ if (shdr != NULL && shdr->sh_type == SHT_DYNAMIC)
+ data = elf_getdata (scn, NULL);
+ if (data == NULL)
+ continue;
+
+ for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) {
+ GElf_Dyn dynmem;
+ GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dynmem);
+ char *depname = NULL;
+
+ if (dyn == NULL)
+ break;
+ if (dyn->d_tag != DT_SONAME)
+ continue;
+
+ /* add the soname to package deps */
+ soname = elf_strptr(elf, shdr->sh_link, dyn->d_un.d_val);
+ if (soname == NULL)
+ break;
+
+ rasprintf(&depname, "%s%s", soname, isElf64 ? "()(64bit)" : "");
+ /* Add to package dependencies. */
+ ds = rpmdsSingle(RPMTAG_REQUIRENAME, depname, "",
+ RPMSENSE_FIND_REQUIRES);
+ free(depname);
+
+ rpmdsMerge(&fc->requires, ds);
+ rpmfcAddFileDep(&fc->ddict, fc->ix, ds);
+ ds = rpmdsFree(ds);
+ break;
+ }
+ }
+exit:
+ if (elf) (void) elf_end(elf);
+ close(fdno);
+ return 0;
+#endif
+ return -1;
+}
+
+/**
* Extract script dependencies.
* @param fc file classifier
* @return 0 on success
@@ -1118,6 +1217,7 @@ static const struct rpmfcApplyTbl_s cons
RPMFC_PERL|RPMFC_PYTHON|RPMFC_MONO|RPMFC_OCAML|
RPMFC_PKGCONFIG|RPMFC_LIBTOOL) },
{ rpmfcMISC, RPMFC_FONT|RPMFC_TEXT },
+ { rpmfcSYMLINK, RPMFC_SYMLINK },
{ NULL, 0 }
};
@@ -1138,6 +1238,7 @@ rpmRC rpmfcApply(rpmfc fc)
int ix;
int i;
int xx;
+ int skipping = 0;
/* Generate package and per-file dependencies. */
for (fc->ix = 0; fc->fn[fc->ix] != NULL; fc->ix++) {
@@ -1192,11 +1293,13 @@ rpmRC rpmfcApply(rpmfc fc)
default:
break;
case 'P':
+ skipping = fc->skipProv;
ds = rpmdsSingle(RPMTAG_PROVIDENAME, N, EVR, Flags);
dix = rpmdsFind(fc->provides, ds);
ds = rpmdsFree(ds);
break;
case 'R':
+ skipping = fc->skipReq;
ds = rpmdsSingle(RPMTAG_REQUIRENAME, N, EVR, Flags);
dix = rpmdsFind(fc->requires, ds);
ds = rpmdsFree(ds);
@@ -1218,7 +1321,7 @@ assert(dix >= 0);
previx = ix;
xx = argiAdd(&fc->fddictx, ix, argiCount(fc->ddictx)-1);
}
- if (fc->fddictn && fc->fddictn->vals)
+ if (fc->fddictn && fc->fddictn->vals && !skipping)
fc->fddictn->vals[ix]++;
}
rpm-4.7.90-fedora-specspo.patch:
tagexts.c | 68 ++++++++++++--------------------------------------------------
1 file changed, 14 insertions(+), 54 deletions(-)
--- NEW FILE rpm-4.7.90-fedora-specspo.patch ---
diff -up rpm-4.7.90.git9301/lib/tagexts.c.fedora-specspo rpm-4.7.90.git9301/lib/tagexts.c
--- rpm-4.7.90.git9301/lib/tagexts.c.fedora-specspo 2009-09-02 13:59:38.000000000 +0300
+++ rpm-4.7.90.git9301/lib/tagexts.c 2009-09-02 14:51:10.000000000 +0300
@@ -460,12 +460,6 @@ static int filerequireTag(Header h, rpmt
}
/* I18N look aside diversions */
-
-#if defined(ENABLE_NLS)
-extern int _nl_msg_cat_cntr; /* XXX GNU gettext voodoo */
-#endif
-static const char * const language = "LANGUAGE";
-
static const char * const _macro_i18ndomains = "%{?_i18ndomains}";
/**
@@ -477,61 +471,27 @@ static const char * const _macro_i18ndom
*/
static int i18nTag(Header h, rpmTag tag, rpmtd td, headerGetFlags hgflags)
{
- char * dstring = rpmExpand(_macro_i18ndomains, NULL);
- int rc;
-
- td->type = RPM_STRING_TYPE;
- td->data = NULL;
- td->count = 0;
-
- if (dstring && *dstring) {
- char *domain, *de;
- const char * langval;
- char * msgkey;
- const char * msgid;
-
- rasprintf(&msgkey, "%s(%s)", headerGetString(h, RPMTAG_NAME),
- rpmTagGetName(tag));
-
- /* change to en_US for msgkey -> msgid resolution */
- langval = getenv(language);
- (void) setenv(language, "en_US", 1);
-#if defined(ENABLE_NLS)
- ++_nl_msg_cat_cntr;
-#endif
+ int rc = headerGet(h, tag, td, HEADERGET_ALLOC);
+ if (rc) {
+ char *de, *dstring = rpmExpand(_macro_i18ndomains, NULL);
+ const char *domain;
- msgid = NULL;
for (domain = dstring; domain != NULL; domain = de) {
+ const char *msgid = td->data;
+ const char *msg = NULL;
+
de = strchr(domain, ':');
if (de) *de++ = '\0';
- msgid = dgettext(domain, msgkey);
- if (msgid != msgkey) break;
- }
-
- /* restore previous environment for msgid -> msgstr resolution */
- if (langval)
- (void) setenv(language, langval, 1);
- else
- unsetenv(language);
-#if defined(ENABLE_NLS)
- ++_nl_msg_cat_cntr;
-#endif
-
- if (domain && msgid) {
- td->data = dgettext(domain, msgid);
- td->data = xstrdup(td->data); /* XXX xstrdup has side effects. */
- td->count = 1;
- td->flags = RPMTD_ALLOCED;
+ msg = dgettext(domain, td->data);
+ if (msg != msgid) {
+ free(td->data);
+ td->data = xstrdup(msg);
+ break;
+ }
}
- dstring = _free(dstring);
- free(msgkey);
- if (td->data)
- return 1;
+ free(dstring);
}
- dstring = _free(dstring);
-
- rc = headerGet(h, tag, td, HEADERGET_ALLOC);
return rc;
}
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/rpm/devel/.cvsignore,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -p -r1.38 -r1.39
--- .cvsignore 25 Nov 2009 08:23:30 -0000 1.38
+++ .cvsignore 7 Dec 2009 13:35:11 -0000 1.39
@@ -1 +1 @@
-rpm-4.7.2.tar.bz2
+rpm-4.8.0-beta1.tar.bz2
Index: rpm.spec
===================================================================
RCS file: /cvs/pkgs/rpms/rpm/devel/rpm.spec,v
retrieving revision 1.369
retrieving revision 1.370
diff -u -p -r1.369 -r1.370
--- rpm.spec 4 Dec 2009 10:29:34 -0000 1.369
+++ rpm.spec 7 Dec 2009 13:35:11 -0000 1.370
@@ -11,9 +11,9 @@
%define rpmhome /usr/lib/rpm
-%define rpmver 4.7.2
-%define snapver {nil}
-%define srcver %{rpmver}
+%define rpmver 4.8.0
+%define snapver beta1
+%define srcver %{rpmver}-%{snapver}
%define bdbver 4.8.24
%define dbprefix db
@@ -21,31 +21,22 @@
Summary: The RPM package management system
Name: rpm
Version: %{rpmver}
-Release: 2%{?dist}
+Release: 0.%{snapver}.1
Group: System Environment/Base
Url: http://www.rpm.org/
-Source0: http://rpm.org/releases/rpm-4.7.x/%{name}-%{srcver}.tar.bz2
+Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
%if %{with int_bdb}
Source1: db-%{bdbver}.tar.gz
%endif
-Source10: desktop-file.prov
-Source11: fontconfig.prov
-Patch0: rpm-4.7.0-devel-autodep.patch
+Patch0: rpm-4.7.90-devel-autodep.patch
Patch1: rpm-4.5.90-pkgconfig-path.patch
Patch2: rpm-4.5.90-gstreamer-provides.patch
# Fedora specspo is setup differently than what rpm expects, considering
# this as Fedora-specific patch for now
-Patch3: rpm-4.6.0-fedora-specspo.patch
+Patch3: rpm-4.7.90-fedora-specspo.patch
-# Patches already in upstream (but not in 4.7.x)
-Patch200: rpm-4.7.1-bugurl.patch
-Patch201: rpm-4.7.0-extra-provides.patch
-Patch202: rpm-4.7.1-python-bytecompile.patch
-Patch203: rpm-4.7.2-sign-passcheck.patch
-Patch204: rpm-4.7.2-rpmfc-unknown.patch
-Patch205: rpm-4.7.2-pgp-subkey.patch
-Patch206: rpm-4.7.2-chmod-selinux.patch
+# Patches already in upstream
# These are not yet upstream
Patch301: rpm-4.6.0-niagara.patch
@@ -97,9 +88,6 @@ BuildRequires: xz-devel >= 4.999.8
BuildRequires: sqlite-devel
%endif
-# XXX temporarily for chmod-test patch
-BuildRequires: autoconf
-
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
@@ -157,6 +145,7 @@ Requires: elfutils >= 0.128 binutils
Requires: findutils sed grep gawk diffutils file patch >= 2.5
Requires: unzip gzip bzip2 cpio lzma xz
Requires: pkgconfig
+Conflicts: ocaml-runtime < 3.11.1-7
%description build
The rpm-build package contains the scripts and executable programs
@@ -201,14 +190,6 @@ packages on a system.
%patch2 -p1 -b .gstreamer-prov
%patch3 -p1 -b .fedora-specspo
-%patch200 -p1 -b .bugurl
-%patch201 -p1 -b .extra-prov
-%patch202 -p1 -b .python-bytecompile
-%patch203 -p1 -b .sign-passcheck
-%patch204 -p1 -b .rpmfc-unknown
-%patch205 -p1 -b .pgp-subkey
-%patch206 -p1 -b .chmod-test
-
%patch301 -p1 -b .niagara
%patch302 -p1 -b .geode
@@ -255,15 +236,13 @@ install -m 755 scripts/rpm.daily ${RPM_B
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d
install -m 644 scripts/rpm.log ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/rpm
-install -p -m 755 %{SOURCE10} %{SOURCE11} ${RPM_BUILD_ROOT}%{rpmhome}/
-
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rpm
mkdir -p $RPM_BUILD_ROOT/var/lib/rpm
for dbi in \
Basenames Conflictname Dirnames Group Installtid Name Packages \
Providename Provideversion Requirename Requireversion Triggername \
- Filedigests Pubkeys Sha1header Sigmd5 \
+ Filedigests Pubkeys Sha1header Sigmd5 Obsoletename \
__db.001 __db.002 __db.003 __db.004 __db.005 __db.006 __db.007 \
__db.008 __db.009
do
@@ -377,6 +356,8 @@ exit 0
%{rpmhome}/javadeps
%{rpmhome}/mono-find-provides
%{rpmhome}/mono-find-requires
+%{rpmhome}/ocaml-find-provides.sh
+%{rpmhome}/ocaml-find-requires.sh
%{rpmhome}/osgideps.pl
%{rpmhome}/perldeps.pl
%{rpmhome}/libtooldeps.sh
@@ -422,6 +403,10 @@ exit 0
%doc doc/librpm/html/*
%changelog
+* Mon Dec 07 2009 Panu Matilainen <pmatilai at redhat.com> - 4.8.0-0.beta1.1
+- update to 4.8.0-beta1 (http://rpm.org/wiki/Releases/4.8.0)
+- rpm-build conflicts with current ocaml-runtime
+
* Fri Dec 04 2009 Panu Matilainen <pmatilai at redhat.com> - 4.7.2-2
- missing error exit code from signing password checking (#496754)
- dont fail build on unrecognized data files (#532489)
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/rpm/devel/sources,v
retrieving revision 1.144
retrieving revision 1.145
diff -u -p -r1.144 -r1.145
--- sources 25 Nov 2009 08:23:32 -0000 1.144
+++ sources 7 Dec 2009 13:35:12 -0000 1.145
@@ -1 +1 @@
-224715646325df4cd3904e3ac9e16186 rpm-4.7.2.tar.bz2
+dfe8f6b28d85b85b66ddacf712904fc1 rpm-4.8.0-beta1.tar.bz2
--- desktop-file.prov DELETED ---
--- fontconfig.prov DELETED ---
--- rpm-4.6.0-fedora-specspo.patch DELETED ---
--- rpm-4.7.0-devel-autodep.patch DELETED ---
--- rpm-4.7.0-extra-provides.patch DELETED ---
--- rpm-4.7.1-bugurl.patch DELETED ---
--- rpm-4.7.1-python-bytecompile.patch DELETED ---
--- rpm-4.7.2-chmod-selinux.patch DELETED ---
--- rpm-4.7.2-pgp-subkey.patch DELETED ---
--- rpm-4.7.2-rpmfc-unknown.patch DELETED ---
--- rpm-4.7.2-sign-passcheck.patch DELETED ---
More information about the fedora-extras-commits
mailing list