Bug 181534
Summary: | Review Request: kst - plots scientific data | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Matthew Truch <matt> |
Component: | Package Review | Assignee: | Orion Poplawski <orion> |
Status: | CLOSED NEXTRELEASE | QA Contact: | Fedora Package Reviews List <fedora-package-review> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | Flags: | kevin:
fedora-cvs+
|
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2006-03-01 21:43:02 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 163779 |
Description
Matthew Truch
2006-02-14 20:49:03 UTC
In the main package file list, you have: %{_libdir}/lib*.so.* Then, in the devel package file list, you have this: %{_libdir}/lib*.so Without building the package myself, I'm wondering if this is right. Typically, programs look for the *.so files, which end up being symlinks to the *.so.X.Y.Z files, and therefore they all (both *.so symlinks AND *.so.X.Y.Z library files) belong in the main package. Typically, the devel package will contain only the static libraries (*.a) in addition to the includes. Anyway, just wondering... :) (In reply to comment #1) > In the main package file list, you have: > > %{_libdir}/lib*.so.* > > Then, in the devel package file list, you have this: > > %{_libdir}/lib*.so > > Without building the package myself, I'm wondering if this is right. Typically, > programs look for the *.so files, which end up being symlinks to the *.so.X.Y.Z > files, and therefore they all (both *.so symlinks AND *.so.X.Y.Z library files) > belong in the main package. Typically, the devel package will contain only the > static libraries (*.a) in addition to the includes. > > Anyway, just wondering... :) I'm not a library package expert, and don't know which .so files the program looks for. However, I'm following the protocol outlined in http://fedoraproject.org/wiki/Packaging/ReviewGuidelines , specifically the line "MUST: If a package contains library files with a suffix (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) must go in a -devel package." Furthermore, I have tested that kst runs fine without the kst-devel pacakge installed. In reply to comment #1) > In the main package file list, you have: > > %{_libdir}/lib*.so.* > > Then, in the devel package file list, you have this: > > %{_libdir}/lib*.so > > Without building the package myself, I'm wondering if this is right. Unless the package is broken and correctly applies SONAMES, it normally is. > Typically, > programs look for the *.so files, No. Very oversimplified, ld.so at runtime looks for a library providing an SONAME. A properly build shared library normally uses libXXXX.so.<cipher> as SONAME. This is where the *.so symlink points to. The *.so symlink normally only is being used by the linker, when linking a package. => *.so go to *-devel => *.so.* to the run-time package. > Anyway, just wondering... :) You're in error ;) Good: - package meets naming guidelines - package meets packaging guidelines - license (GPL) OK, text in %doc, matches source - spec file legible, in am. english - source matches upstream - no missing BR - uses %find_lang - not relocatable - no duplicate files - permissions ok - %clean ok - macro use consistent - code, not content - nothing in %doc affects runtime - devel package ok - post/postun ldconfig ok - devel requires base package n-v-r Bad: - This needs to compile on devel first, so it needs to handle modular X. BR xorg-x11-devel needs to be removed. - Unnecessary BR: qt-devel,kdelibs-devel (required by kdebindings-devel) - Needs to owns all directories that it creates: %{_datadir}/apps/kst/ %{_datadir}/services/kst/ %{_datadir}/servicetypes/ %{_libdir}/kde3/kstplugins/ Other notes: - Might want to change Source0 to: ftp://ftp.kde.org/pub/kde/stable/apps/KDE3.x/scientific/kst-%{version}.tar.gz - I'll need to take a look at the desktop files later - Still working on building in mock and running rpmlint. Updated spec to address above (I hope): http://matt.truch.net/fedora/kst.spec http://matt.truch.net/fedora/kst-1.2.0-2.src.rpm Removed un-needed build requires. Ownes directories. Changed Source0 as requested. I don't have access to a machine running devel, so I can't confirm that it can build there. :-( Thanks for the comments thus far. Hi Matt, with mock you can specify a buildroot such as: mock -r fedora-5-i386-core ${YOUR_SRPM} so that, even on an FC4 system, you can test builds on a devel/FC5 system It builds fine for me on devel with xorg-x11-devel removed. - Get rid of: --disable-debug and CXXFLAGS=-g CFLAGS=-g debuginfo packages are created automatically and your mucking with the RPM optimization flags. $ rpmlint kst-docs W: kst-docs dangling-symlink /usr/share/doc/HTML/sv/kst/common /usr/share/doc/HTML/sv/common W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/sv/kst/common /usr/share/doc/HTML/sv/common W: kst-docs dangling-symlink /usr/share/doc/HTML/et/kst/common /usr/share/doc/HTML/et/common W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/et/kst/common /usr/share/doc/HTML/et/common W: kst-docs dangling-symlink /usr/share/doc/HTML/en/kst/common /usr/share/doc/HTML/en/common W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/en/kst/common /usr/share/doc/HTML/en/common W: kst-docs dangling-symlink /usr/share/doc/HTML/fr/kst/common /usr/share/doc/HTML/fr/common W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/fr/kst/common /usr/share/doc/HTML/fr/common W: kst-docs dangling-symlink /usr/share/doc/HTML/pt/kst/common /usr/share/doc/HTML/pt/common W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/pt/kst/common /usr/share/doc/HTML/pt/common W: kst-docs dangling-symlink /usr/share/doc/HTML/it/kst/common /usr/share/doc/HTML/it/common W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/it/kst/common /usr/share/doc/HTML/it/common W: kst-docs dangling-symlink /usr/share/doc/HTML/nl/kst/common /usr/share/doc/HTML/nl/common W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/nl/kst/common /usr/share/doc/HTML/nl/common W: kst-docs dangling-symlink /usr/share/doc/HTML/da/kst/common /usr/share/doc/HTML/da/common W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/da/kst/common /usr/share/doc/HTML/da/common I generally fix with: #Fix doc link ln -sf ../common $RPM_BUILD_ROOT%{_defaultdocdir}/HTML/en/%{name} Looks like I end up with a new menu tree: Applications -> Sciences -> kst. Not sure if this is kosher for FE. I'll poke around. (In reply to comment #7) > It builds fine for me on devel with xorg-x11-devel removed. Great. > - Get rid of: > > --disable-debug and CXXFLAGS=-g CFLAGS=-g > > debuginfo packages are created automatically and your mucking with the RPM > optimization flags. Unfortunatly, with kst, if you don't have --disable-debug, then a bunch of 'crap' may be spewed out on stdout and/or stderr when using kst. I don't know how else to disable this 'debugging text output' while keeping the debugging info in the binaries (so debuginfo packages) are useful. > $ rpmlint kst-docs > W: kst-docs dangling-symlink /usr/share/doc/HTML/sv/kst/common > /usr/share/doc/HTML/sv/common > W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/sv/kst/common > /usr/share/doc/HTML/sv/common > W: kst-docs dangling-symlink /usr/share/doc/HTML/et/kst/common > /usr/share/doc/HTML/et/common > W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/et/kst/common > /usr/share/doc/HTML/et/common > W: kst-docs dangling-symlink /usr/share/doc/HTML/en/kst/common > /usr/share/doc/HTML/en/common > W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/en/kst/common > /usr/share/doc/HTML/en/common > W: kst-docs dangling-symlink /usr/share/doc/HTML/fr/kst/common > /usr/share/doc/HTML/fr/common > W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/fr/kst/common > /usr/share/doc/HTML/fr/common > W: kst-docs dangling-symlink /usr/share/doc/HTML/pt/kst/common > /usr/share/doc/HTML/pt/common > W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/pt/kst/common > /usr/share/doc/HTML/pt/common > W: kst-docs dangling-symlink /usr/share/doc/HTML/it/kst/common > /usr/share/doc/HTML/it/common > W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/it/kst/common > /usr/share/doc/HTML/it/common > W: kst-docs dangling-symlink /usr/share/doc/HTML/nl/kst/common > /usr/share/doc/HTML/nl/common > W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/nl/kst/common > /usr/share/doc/HTML/nl/common > W: kst-docs dangling-symlink /usr/share/doc/HTML/da/kst/common > /usr/share/doc/HTML/da/common > W: kst-docs symlink-should-be-relative /usr/share/doc/HTML/da/kst/common > /usr/share/doc/HTML/da/common > > I generally fix with: > > #Fix doc link > ln -sf ../common $RPM_BUILD_ROOT%{_defaultdocdir}/HTML/en/%{name} This only fixes the "symlink-should-be-relative" warning, but doesn't remove the "dangling-symlink" warning. Is that correct? (In reply to comment #8) > (In reply to comment #7) > > - Get rid of: > > > > --disable-debug and CXXFLAGS=-g CFLAGS=-g > > > > debuginfo packages are created automatically and your mucking with the RPM > > optimization flags. > > Unfortunatly, with kst, if you don't have --disable-debug, then a bunch of > 'crap' may be spewed out on stdout and/or stderr when using kst. I don't know > how else to disable this 'debugging text output' while keeping the debugging > info in the binaries (so debuginfo packages) are useful. > Well, CCFLAGS and CXXFLAGS automatically have -g in them when you use %configure, but by setting them you wipe out the optimization flags. So keep --disable-debug but drop the flags. > This only fixes the "symlink-should-be-relative" warning, but doesn't remove the > "dangling-symlink" warning. Is that correct? Well, I think ln -sf ../../common $RPM_BUILD_ROOT%{_defaultdocdir}/HTML/sv/kst/%{name} should handle that, right? What is the /sv/kst/ directory for though? I don't have any other packages using %{_defaultdocdir}/HTML/sv/. You'll need to own that too. (In reply to comment #9) > > Well, CCFLAGS and CXXFLAGS automatically have -g in them when you use > %configure, but by setting them you wipe out the optimization flags. So keep > --disable-debug but drop the flags. Done. > > This only fixes the "symlink-should-be-relative" warning, but doesn't remove the > > "dangling-symlink" warning. Is that correct? > > Well, I think > > ln -sf ../../common $RPM_BUILD_ROOT%{_defaultdocdir}/HTML/sv/kst/%{name} > > should handle that, right? What is the /sv/kst/ directory for though? I don't > have any other packages using %{_defaultdocdir}/HTML/sv/. You'll need to own > that too. Directories owned. The sv (and other) directories are for different translations of the documentation. If people have other documentation (in specific) languages installed, those directories will contain translated docs for other apps. The dangling symlinks will be un-dangling if kde documentation for the specific language is installed. I don't know if this is the best thing, but I'd really rather not have a separate package for each documentation translation. Updated spec and SRPM: http://matt.truch.net/fedora/kst.spec http://matt.truch.net/fedora/kst-1.2.0-4.src.rpm Needs work: * Use of buildroot is not consistant (wiki: PackagingGuidelines#UsingBuildRootOptFlags) = sorry - this was introduced by my ln suggestion (I use RPM_BUILD_ROOT instead of %buildroot). You might try: for x in %{buildroot}%{_defaultdocdir}/HTML/*/%{name}/ do ln -sf ../common $x done Will handle any new languages automatically in the future. I think the dangling link for other languages is fine. - You need to install the .desktop file properly. See http://fedoraproject.org/wiki/Packaging/Guidelines?highlight=%28.desktop%29#head-254ddf07aae20a23ced8cecc219d8f73926e9755 I would also use --delete-original to remove the original. The Applications/Scientific directory structure is not used in Fedora. e.g. (from my kdesvn package): desktop-file-install --vendor=fedora \ --add-category=Qt \ --add-category=KDE \ --add-category=Application \ --add-category=Development \ --add-category=X-Fedora \ --delete-original --dir $RPM_BUILD_ROOT%{_datadir}/applications \ $RPM_BUILD_ROOT%{_datadir}/applications/kde/%{name}.desktop I think that may be it :-)! (In reply to comment #11) > Needs work: > * Use of buildroot is not consistant > > for x in %{buildroot}%{_defaultdocdir}/HTML/*/%{name}/ > do > ln -sf ../common $x > done Done. I like that. > - You need to install the .desktop file properly. See Done. > I think that may be it :-)! Cool. New packages at the usual place: http://matt.truch.net/fedora/kst.spec http://matt.truch.net/fedora/kst-1.2.0-6.src.rpm Looks good. APPROVED. Thanks for the APPROVED. After a brief issue with the buildsystem (the circular dep), kst is in the system. I'd like kst in EPEL as well, I'll maintain them: ==================== Package Name: kst Owners: mtruch Branches: EL-4 EL-5 Cvsextras Commits: yes cvs done. |