Bug 720857 - Review Request: datalog - A Lightweight Deductive Database using Datalog
Review Request: datalog - A Lightweight Deductive Database using Datalog
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
unspecified Severity medium
: ---
: ---
Assigned To: Tim Niemueller
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2011-07-12 21:40 EDT by John D. Ramsdell
Modified: 2012-12-20 11:28 EST (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-12-20 11:28:09 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
tim: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)
Proposed 1.7-2 spec (3.05 KB, text/plain)
2011-10-12 08:52 EDT, John D. Ramsdell
no flags Details

  None (edit)
Description John D. Ramsdell 2011-07-12 21:40:14 EDT
Spec URL: http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog.spec
SRPM URL: http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog-1.6-1.src.rpm
Description: 

This package contains a lightweight deductive database system.
Queries and database updates are expressed using Datalog--a
declarative logic language in which each formula is a function-free
Horn clause, and every variable in the head of a clause must appear in
the body of the clause.  The use of Datalog syntax and an
implementation based on tabling intermediate results, ensures that all
queries terminate.

The components in this package are designed to be small, and usable on
memory constrained devices.  The package includes an interactive
interpreter for Datalog, and the developments package has a library
that can be used to embed the interpreter into C programs.
Comment 1 John D. Ramsdell 2011-07-12 21:43:23 EDT
Datalog Manual: http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog.html
Comment 2 John D. Ramsdell 2011-07-14 14:42:02 EDT
Hold it.  There are more changes to the spec required.  I'm working on it.

Also, the development site for this project is http://sf.net/projects/datalog.
Comment 4 Martin Gieseking 2011-08-03 02:29:47 EDT
John, is this your first Fedora package submission? I can't find your email address in the packager group. If so, please add FE-NEEDSPONSOR to the Blocks field above and see the following pages for further information:

http://fedoraproject.org/wiki/PackageMaintainers/Join
http://fedoraproject.org/wiki/PackageMaintainers/HowToGetSponsored


Some quick comments on your spec:
- According to the source file headers, the license is LGPLv2+. The "+" 
  indicates the addition "or (at your option) any later version".

- Drop the Vendor field. It is set automatically by the build system. 

- The BuildRoot field can be omitted for Fedora packages. However, it's still
  required for EPEL <= 5. If you keep it, use one of the variants given here:
  https://fedoraproject.org/wiki/EPEL/GuidelinesAndPolicies#BuildRoot_tag

- Replace %defattr (-, root, root) with %defattr (-, root, root, -) or remove
  it completely. %defattr is still required for EPEL 4 builds, though.

- Avoid using plain asterisks in %files. Always try to be more specific,
  especially if only single folders/files are added.

- Add COPYING.LIB as %doc. The file containing the license text must always be
  packaged if present in the tarball.

- Drop the asterisk from %{_datadir}/%{name}/* for proper directory ownership.

- Fedora usually avoids providing static libraries. If there's no way to
  build a shared library for this package, see the following page how to
  handle the static one:
  https://fedoraproject.org/wiki/Packaging/Guidelines#Packaging_Static_Libraries

- Always bump the Release number if you provide a new package for the same
  version. Thus, two %changelog entries should never get the same
  %{version}-%{release} tag.
  Also, The %changlog is intended to document changes to the package/spec 
  only. Therefore, don't add information about the (upstream) changes 
  applied to the program code.
Comment 5 John D. Ramsdell 2011-08-06 17:48:45 EDT
(In reply to comment #4)
> John, is this your first Fedora package submission? 

My first package submission is:

https://bugzilla.redhat.com/show_bug.cgi?id=683127
Comment 6 John D. Ramsdell 2011-08-06 17:58:37 EDT
(In reply to comment #4)

> - Fedora usually avoids providing static libraries. If there's no way to
>   build a shared library for this package, see the following page how to
>   handle the static one:
>  
> https://fedoraproject.org/wiki/Packaging/Guidelines#Packaging_Static_Libraries

I have fixed all of the problems you identified but the static library issue.  I have to think carefully about fixing this problem as I realize I should be linking against Fedora's liblua shared library, and not use the version of lua included in the package. This change will require a new source release.  I also need to find the autoconf script used to find installed versions of Lua 5.1 and make sure Lua 5.0 is not found.  The trouble is, Debian seems to want to call the package I need liblua51, not liblua.  I'm working the problem.

John
Comment 7 Martin Gieseking 2011-08-07 14:08:01 EDT
OK, thanks for the information. Since you're not sponsored yet, I add FE-NEEDSPONSOR to this ticket as well. 
When you've solved the bundled Lua issue and packaged the new release, post a link to it and we can continue.
Comment 8 John D. Ramsdell 2011-09-20 11:35:31 EDT
(In reply to comment #7)
> When you've solved the bundled Lua issue and packaged the new release, post a
> link to it and we can continue.

I haven't resolved the bundled Lua issue, so for now, I removed the devel package and thus eliminated the static library issue.  The spec file is at its old location, but the SRPM is at SourceForge and the sources are in the project's git repository.

Spec URL: http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog.spec
SRPM URL: http://downloads.sourceforge.net/datalog/datalog-1.6-2.src.rpm
Comment 9 John D. Ramsdell 2011-09-22 13:58:38 EDT
My sponsor is Tom "spot" Callaway.
Comment 10 John D. Ramsdell 2011-09-27 07:44:03 EDT
(In reply to comment #9)
> My sponsor is Tom "spot" Callaway.

https://bugzilla.redhat.com/show_bug.cgi?id=683127#c33
Comment 11 Tim Niemueller 2011-09-27 08:46:28 EDT
John contacted me by private mail, If no one objects, I'll take this review as I have some Lua background and I'm familiar with the topic.

Please consider renaming the package to lua-datalog (and naming the software itself datalog-lua would be a little more to the point). It is not the canonical datalog implementation, but just a particular one in Lua. I'll reply to your mail to answer the rest.
Comment 12 John D. Ramsdell 2011-09-27 09:27:30 EDT
(In reply to comment #11)
> I'll take this review as I have some Lua background and I'm familiar with the topic.

Thank you for taking this on.  I really need help from someone with Lua experience.

> Please consider renaming the package to lua-datalog

I don't mind renaming the Fedora package

> (and naming the software itself datalog-lua would be a little more to the point).

but, the software has been called datalog since 2004, and I am loath to go through that kind of name change.  Even its SourceForge site is http://datalog.sf.net.

As a follower of Lua, you might be interested in a little history.  You may recall that I posted patches to Lua that replace all floating point operations with integer ones.  The reason is I wanted to run Lua in a tiny Xen VM build in Mini-OS, and Mini-OS had no support for saving FP registers during a context switch. The program we wanted to run within the tiny VM was Datalog.

http://lists.xensource.com/archives/html/xen-devel/2006-04/msg01159.html
Comment 13 Michel Alexandre Salim 2011-09-27 10:34:04 EDT
Tim, by all means do the review; just Cc:ing myself to follow this review process
Comment 14 John D. Ramsdell 2011-09-30 07:31:10 EDT
I resolved all the issues surrounding shared and static libraries.  For the spec file, the source distribution generates only shared libraries and uses the installed version of Lua.  I think it's good to go. 

Spec URL: http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog.spec
SRPM URL: http://downloads.sourceforge.net/datalog/datalog-1.7-1.src.rpm
Comment 15 Tim Niemueller 2011-10-11 18:08:22 EDT
Hi John.

Nice work on the package, a few minor things and we'll go for the review.

Had a look at the package, here are some remarks and things that need to be fixed:
- datalog IS the right name (Lua is an implementation detail, it is not a Lua module)
- You need to create a -devel sub-package to package header and .so (no suffix) files (.so.0.0.0 stays in the main package).
- write the full sourceforge URL (not sf.net)
- remove the Packager field
- Can you relax the build requirement? If there was a 5.1.5 it wouldn't build anymore, but that version would only have minor changes. If you feel that it is likely to need some work keep it as is.
- define the luapkgdir at the top of the file
- remove the newline between %description and the text
Comment 16 John D. Ramsdell 2011-10-12 08:52:13 EDT
Created attachment 527693 [details]
Proposed 1.7-2 spec
Comment 17 John D. Ramsdell 2011-10-12 08:57:41 EDT
(In reply to comment #15)

> - Can you relax the build requirement? If there was a 5.1.5 it wouldn't build
> anymore, but that version would only have minor changes. If you feel that it is
> likely to need some work keep it as is.

I don't know how to do this.  All I want to specify is the use of some 5.1 version of Lua.  I tried BuildRequires: texinfo, lua-devel == 5.1, but this happens:

$ rpmbuild -ba datalog.spec
error: Failed build dependencies:
	lua-devel = 5.1 is needed by datalog-1.7-2.fc15.i686

I tried lua-devel >= 5.1 < 5.2, but you can't say that.  You only get to use one comparison operator.  So how to I say use any version of lua 5.1?

> - You need to create a -devel sub-package to package header and .so (no suffix)
> files (.so.0.0.0 stays in the main package).

I assume the .so.0 stays in the main package too.  I have attached the latest version of the spec.
Comment 18 John D. Ramsdell 2011-10-12 09:10:57 EDT
(In reply to comment #17)
> (In reply to comment #15)
> I tried lua-devel >= 5.1 < 5.2, but you can't say that.  You only get to use
> one comparison operator.  So how to I say use any version of lua 5.1?

Could it be one must write:

BuildDepends: texinfo, lua-devel >= 5.1, lua-devel < 5.2

?  

Can you list a package twice with different conditionals?

John
Comment 19 Tim Niemueller 2011-12-04 10:54:17 EST
Hi John.

The spec file looks good now. I still don't like to the lua-devel==5.1.4 requirement. I'd say let's go with "lua-devel" and we see how that goes. Lua 5.2 will be a feature, so we'll notify Lua package owners anyway if we upgrade later.

Please upload a new src.rpm file so I can run the formal review. Please also consider doing a Koji scratch build to prove that it builds in the build system.
Comment 20 John D. Ramsdell 2011-12-05 07:57:08 EST
(In reply to comment #19)
> Hi John.
> 
> The spec file looks good now. I still don't like to the lua-devel==5.1.4
> requirement. I'd say let's go with "lua-devel" and we see how that goes. Lua
> 5.2 will be a feature, so we'll notify Lua package owners anyway if we upgrade
> later.

I don't see how the spec file as written can work with Lua 5.2.  After all, it installs datalog.lua into %{_datadir}/lua/5.1, so it will not be found when 5.2 is installed.  Please advise on changes, or I guess we can just submit and allow access to the program and the library, and forget about the Lua package when Lua 5.2 comes out.

John
Comment 21 John D. Ramsdell 2011-12-05 08:17:58 EST
I uploaded the new src.rpm file to http://www.ccs.neu.edu/home/ramsdell/.www/tools/datalog/datalog-1.7-2.fc16.src.rpm.

I had trouble getting koji working.  When I did fedora-packager-setup, it generated the ./.fedora.cert file without a problem, but the browser cert it generated was empty (file length zero).  When I tried to do a scratch compile of using koji following http://fedoraproject.org/wiki/PackageMaintainers/Join#Install_the_Client_Tools_.28Koji.29, the connection timed out.  It could be a proxy problem.  I tried setting http_proxy and https_proxy, but the connection still timed out.

John
Comment 22 John D. Ramsdell 2012-01-05 09:29:54 EST
New Package SCM Request
=======================
Package Name: datalog
Short Description: A Lightweight Deductive Database using Datalog
Owners: ramsdell
Branches: f15 f16 el6
InitialCC: tim
Comment 23 Tim Niemueller 2012-01-05 10:08:55 EST
This can only be done after approval. I'll look at it today. Do not put me as initial CC, that would make me a co-maintainer which we do not intend.
Comment 24 John D. Ramsdell 2012-01-05 10:19:55 EST
(In reply to comment #23)
> This can only be done after approval. I'll look at it today. Do not put me as
> initial CC, that would make me a co-maintainer which we do not intend.

Sorry to jump the gun.  I thought when you said the spec file looks good, you were approving it, but I realize now there is some flag that determines that state. 

I'll take you off the initial CC list next time I make the request.
Comment 25 Tim Niemueller 2012-01-10 20:02:14 EST
REVIEW:

Legend: + = PASSED, - = FAILED, 0 = Not Applicable

- rpmlint is not silent and some messages may not be ignored
  datalog.x86_64: W: name-repeated-in-summary C Datalog
  - This is ok in this context

  datalog.x86_64: E: script-without-shebang /usr/share/lua/5.1/datalog.lua
  - You need to remove the executable bit on the permissions of this file

  datalog.x86_64: E: incorrect-fsf-address /usr/share/lua/5.1/datalog.lua
  datalog.x86_64: E: incorrect-fsf-address /usr/share/doc/datalog-1.7/COPYING.LIB
datalog-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/datalog-1.7/interp.c
  - This must be fixed, it changed a couple of years ago

  datalog.x86_64: W: no-manual-page-for-binary datalog
  - This is ok for now, but I'd recommend to add one to the project

  datalog-devel.x86_64: W: no-dependency-on datalog/datalog-libs/libdatalog
  - this must be added as the devel sub-package contains a symlink to a file of the main package

  datalog-devel.x86_64: W: summary-ended-with-dot C Datalog header file and library.
  - This must be fixed

  datalog-devel.x86_64: W: invalid-license LGPL
  - This must be fixed, it is something like LGPLv2 or LGPLv2+, cf. wiki about acceptable licenses

  datalog-devel.x86_64: W: no-documentation
  - Is there any API documentation you might add here? Otherwise this is ok.


+ The package is named according to the  Package Naming Guidelines.
+ The spec file name matches the base package %{name}, in the format
%{name}.spec.
+ The package meets the Packaging Guidelines.
- The package is licensed with a Fedora approved license and meets the
Licensing Guidelines.
  See rpmlint comment above.

(-) The License field in the package spec file matches the actual license ().
  Will re-check if license tag is fixed

+ The file, containing the text of the license(s) for the package, is included
in %doc.
+ The spec file is written in American English.
+ The spec file for the package is legible.
+ The sources used to build the package, match the upstream source, as provided
in the spec URL.

package# sha256sum ../../SOURCES/datalog-1.7.tar.gz 
35f003754591a3ae623269b78321063fc3a09a332001cc8c95587502aaf6f5d1  ../../SOURCES/datalog-1.7.tar.gz
downloaded# sha256sum datalog-1.7.tar.gz 
35f003754591a3ae623269b78321063fc3a09a332001cc8c95587502aaf6f5d1  datalog-1.7.tar.gz
+ The package successfully compiles and builds into binary rpms on at least one
primary architecture.
+ All build dependencies are listed in BuildRequires.
0 No need to handle locales.
+ Spec file calls ldconfig
+ The package does NOT bundle copies of system libraries.
+ The package is not designed to be relocatable.
+ The package owns all directories that it creates.
+ The package does not list a file more than once in the spec file's %files
listings.
- Permissions on files are set properly.
  See rpmlint
+ The package has a %clean section, which contains rm -rf %{buildroot} (or
$RPM_BUILD_ROOT).
+ The package consistently uses macros.
+ The package contains code, or permissible content.
+ No extremely large documentation files.
+ Anything, the package includes as %doc, does not affect the runtime of the
application.
+ Header files in devel sub-package
0 No static libraries.
0 No pkgconfig(.pc) files.
+ Non-suffix so file is in devel sub-package
- Devel sub-package does not require main package
+ The package does NOT contain any .la libtool archives.
0 Not a GUI application.
+ The package does not own files or directories already owned by other
packages.
+ At the beginning of %install, the package runs rm -rf %{buildroot} (or
$RPM_BUILD_ROOT).
+ All filenames in rpm packages are valid UTF-8.

There remain a few action items that you see in the rpmlint section. Happy fixing,
Comment 26 Tim Niemueller 2012-01-11 06:27:33 EST
(In reply to comment #25)

> + The package successfully compiles and builds into binary rpms on at least one
> primary architecture.

http://koji.fedoraproject.org/koji/taskinfo?taskID=3637478
Comment 27 John D. Ramsdell 2012-01-17 14:52:46 EST
(In reply to comment #25)

I'm making progress addressing the rpm errors you identified, however, I'm baffled by two of the errors: incorrect-fsf-address and no-dependency-on.  I tried to find them in: 

http://fedoraproject.org/wiki/Common_Rpmlint_issues

but they are not documented there.  Where should I look?  I googled with "site:fedoraproject.org rpmlint incorrect-fsf-address" and did not get a definitive answer.  I also tried "site:fedoraproject.org rpmlint" but that didn't seem to help.

Here is the rpmlint I generate right now:

$ rpmlint datalog-1.7-3.fc16.x86_64.rpm 
datalog.x86_64: W: name-repeated-in-summary C Datalog
datalog.x86_64: E: incorrect-fsf-address /usr/share/lua/5.1/datalog.lua
datalog.x86_64: E: incorrect-fsf-address /usr/share/doc/datalog-1.7/COPYING.LIB
datalog.x86_64: W: no-manual-page-for-binary datalog
1 packages and 0 specfiles checked; 2 errors, 2 warnings.
$ rpmlint datalog-devel-1.7-3.fc16.x86_64.rpm 
datalog-devel.x86_64: W: no-dependency-on datalog/datalog-libs/libdatalog
datalog-devel.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.
$

I will add a manual page to datalog-1.8 when the package is updated to use Lua 5.2.  As to the missing devel documentation, the API is documented in the info file distributed in the main package.
Comment 28 John D. Ramsdell 2012-01-17 15:04:35 EST
(In reply to comment #27)
> (In reply to comment #25)

Ah.  A little more googling and I found the way to resolve the no-dependency-on message with:

$ git diff
diff --git a/datalog.spec.in b/datalog.spec.in
index 1185197..e94595d 100644
--- a/datalog.spec.in
+++ b/datalog.spec.in
@@ -33,6 +33,7 @@ that can be used to embed the interpreter into C programs.
 Summary: Datalog header file and library
 License: LGPLv2+
 Group: Development/Libraries
+Requires: libdatalog = %{version}
 
 %description devel 
 This package includes the header file and library that can be used to
$ 

It's just the incorrect-fsf-address error that has me stumped.
Comment 29 John D. Ramsdell 2012-01-17 15:10:00 EST
(In reply to comment #28)
> (In reply to comment #27)
> > (In reply to comment #25)
> 
> Ah.  A little more googling and I found the way to resolve the no-dependency-on
> message with:

And a little more googling says to type "rpmlint -I incorrect-fsf-address" for the information I needed.  I got it all now. 

John
Comment 30 John D. Ramsdell 2012-01-19 22:36:24 EST
I created a new datalog release.  The spec and SRPM is here: 

Spec URL: http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog.spec
SRPM URL: http://downloads.sourceforge.net/datalog/datalog-1.8-1.fc16.src.rpm

This release fixes all problems noted earlier, and it adds a manual page and support for Lua 5.2.  The spec file still requires Lua 5.1, but it is the only file that need be changed when Lua 5.2 becomes available on Fedora.

$ rpmlint datalog-1.8-1.fc16.x86_64.rpm 
datalog.x86_64: W: name-repeated-in-summary C Datalog
1 packages and 0 specfiles checked; 0 errors, 1 warnings.
$ rpmlint datalog-devel-1.8-1.fc16.x86_64.rpm 
datalog-devel.x86_64: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 1 warnings.
$ 

Note that the API documentation is included in info file for the base package.
Comment 31 John D. Ramsdell 2012-01-26 17:42:24 EST
When Lua 5.2 comes out, I suggest the following changes be made to the spec file:

$ diff -ur a b
diff -ur a/datalog.spec b/datalog.spec
--- a/datalog.spec	2012-01-26 17:01:18.755156624 -0500
+++ b/datalog.spec	2012-01-26 17:34:24.117866981 -0500
@@ -1,8 +1,8 @@
-%define	luapkgdir %{_datadir}/lua/5.1
+%define	luapkgdir %{_datadir}/lua/5.2
 
 Name:		datalog
 Version:	1.8
-Release:	1%{?dist}
+Release:	2%{?dist}
 
 Source0:	http://downloads.sourceforge.net/datalog/%{name}-%{version}.tar.gz
 
@@ -13,7 +13,7 @@
 License:	LGPLv2+
 Group:		Applications/Databases
 
-BuildRequires:	texinfo, lua-devel == 5.1.4
+BuildRequires:	texinfo, lua-devel < 5.3
 
 %description
 This package contains a lightweight deductive database system.
$
Comment 32 John D. Ramsdell 2012-01-26 18:49:22 EST
Wait a minute.  I was checking out python rpms and noticed a trick they use.  For both the datalog and lua-json packages, I suggest that the lua version be calculated as follows.  Note that this spec works for both Lua 5.1 and 5.2.  Do you like this idea?

$ diff -ur a b
diff -ur a/datalog.spec b/datalog.spec
--- a/datalog.spec	2012-01-26 17:01:18.755156624 -0500
+++ b/datalog.spec	2012-01-26 18:31:14.956298243 -0500
@@ -1,8 +1,9 @@
-%define	luapkgdir %{_datadir}/lua/5.1
+%{!?luaver: %define luaver %(lua -e "print(string.sub(_VERSION, 5))")}
+%define	luapkgdir %{_datadir}/lua/%{luaver}
 
 Name:		datalog
 Version:	1.8
-Release:	1%{?dist}
+Release:	2%{?dist}
 
 Source0:	http://downloads.sourceforge.net/datalog/%{name}-%{version}.tar.gz
 
@@ -13,7 +14,7 @@
 License:	LGPLv2+
 Group:		Applications/Databases
 
-BuildRequires:	texinfo, lua-devel == 5.1.4
+BuildRequires:	texinfo, lua-devel < 5.3
 
 %description
 This package contains a lightweight deductive database system.
$
Comment 33 John D. Ramsdell 2012-01-30 08:51:04 EST
I still cannot get koji working.  I reran fedora-packager-setup, but when I asked Firefox to import the certificate, it ignored the file I gave it.  I tried to run koji from the command line, and got a new error.

$ koji build --arch-override=i386 --scratch dist-f17 datalog-1.8-1.fc16.src.rpm 
Error: []
$ 

This error occurred immediately -- there was no timeout or wait involved.
Comment 34 John D. Ramsdell 2012-01-30 17:36:38 EST
Outside the firewall, I finally got a command-line version koji to work.  Here is the big news.  It looks like the trick of running lua to to define the macro ${luaver} works!  Root.log says that lua was present and ready to run when the SPEC file needed it.

http://koji.fedoraproject.org/koji/taskinfo?taskID=3747319
Comment 35 John D. Ramsdell 2012-01-30 17:47:18 EST
The latest spec and SRPM are here: 

Spec URL: http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog.spec
SRPM URL: http://downloads.sourceforge.net/datalog/datalog-1.8-2.fc16.src.rpm
Comment 36 John D. Ramsdell 2012-04-08 17:34:56 EDT
There has been a major new release of datalog.  The latest spec and SRPM are here:

Spec URL: http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog.spec
SRPM URL:
http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog-2.1-1.src.rpm
Comment 37 Tim Niemueller 2012-04-25 18:13:43 EDT
Ok, time to get this done. The SRPM URL is broken btw.

rpmlint is almost quite now, the warnings are fine. However, you broke the Requires of the devel sub-package. It requires "libdatalog" which does not exist. It should rather depend only on "datalog" as it seems.
Comment 38 John D. Ramsdell 2012-04-26 08:18:19 EDT
The latest spec and SRPM are
here:

Spec URL: http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog.spec
SRPM URL:
http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog-2.2-1.fc16.src.rpm

(In reply to comment #37)
> Ok, time to get this done. The SRPM URL is broken btw.
> 
> rpmlint is almost quite now, the warnings are fine. However, you broke the
> Requires of the devel sub-package. It requires "libdatalog" which does not
> exist. It should rather depend only on "datalog" as it seems.

This error has been fixed in the latest SPEC file.  I'm not sure what I was thinking when I specified libdatalog, but in any event, it should be good to go now.

Thanks
Comment 39 John D. Ramsdell 2012-04-26 08:24:10 EDT
Tim, do you need help with the 5.1 to 5.2 transition?  After I finish the datalog package, I'll be willing to lend a hand.
Comment 40 John D. Ramsdell 2012-05-25 07:49:07 EDT
I updated the spec to replace occurences of %define by %global.

Spec URL: http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog.spec
SRPM URL: http://downloads.sourceforge.net/datalog/datalog-2.2-2.fc16.src.rpm
Comment 41 Michel Alexandre Salim 2012-05-27 07:48:17 EDT
Hi John,

Some notes:
- BuildRoot definition is only required if you're targeting RHEL 5. If you do, I'd suggest making it conditional:

%if 0%{?el5}
BuildRoot: ...
%endif

Likewise, unless you're on RHEL 5, you don't need to clean it at the beginning of %install

- Subpackages inherit the fields of the main package unless overridden. So there's no need to re-specify the license as they're identical

- Group declaration is only required in RHEL 5, but RHEL 6's rpmlint still warns if it's not defined. It's no longer used by Fedora, so you can, if you want, make them conditional too (but with %if 0%{?rhel} instead -- or %if 0%{?rhel} < 7)

- Looks like your Makefile has a 'make check' target -- if there are real tests for it, you might want to define a '%check' section:

%check
make check
Comment 42 John D. Ramsdell 2012-06-05 08:07:52 EDT
(In reply to comment #41)

Thank you Michel for your help.

I updated the spec as suggested except the make check target doesn't do real test so I did not define the %check section.

Spec URL: http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog.spec
SRPM URL: http://downloads.sourceforge.net/datalog/datalog-2.2-3.fc16.src.rpm

$ diff -ur a b
diff -ur a/datalog.spec b/datalog.spec
--- a/datalog.spec	2012-06-05 07:51:00.689398272 -0400
+++ b/datalog.spec	2012-06-05 07:51:07.633588896 -0400
@@ -3,7 +3,7 @@
 
 Name:		datalog
 Version:	2.2
-Release:	2%{?dist}
+Release:	3%{?dist}
 
 Source0:	http://downloads.sourceforge.net/datalog/%{name}-%{version}.tar.gz
 
@@ -12,7 +12,9 @@
 
 Summary:	A Lightweight Deductive Database using Datalog
 License:	LGPLv2+
+%if 0%{?rhel}
 Group:		Applications/Databases
+%endif
 
 BuildRequires:	texinfo, lua-devel < 5.3
 
@@ -32,8 +34,9 @@
 
 %package devel 
 Summary: Datalog header file and library
-License: LGPLv2+
+%if 0%{?rhel}
 Group: Development/Libraries
+%endif
 Requires: datalog = %{version}
 
 %description devel 
@@ -48,7 +51,6 @@
 make %{?_smp_mflags}
 
 %install
-rm -rf %{buildroot}
 make DESTDIR=%{buildroot} install
 mkdir -p %{buildroot}%{luapkgdir}
 install -m 644 %{name}.lua %{buildroot}%{luapkgdir}
@@ -88,6 +90,11 @@
 %{_libdir}/lib%{name}.so
 
 %changelog
+* Tue Jun  5 2012 John D. Ramsdell <ramsdell@mitre.org> - 2.2-3
+- Removed rm of build root in %%install
+- Group field defined only for RHEL
+- Removed license field in subpackage devel
+
 * Fri May 25 2012 John D. Ramsdell <ramsdell@mitre.org> - 2.2-2
 - Changed %%define to %%global
Comment 43 John D. Ramsdell 2012-09-05 13:15:43 EDT
What is blocking progress on the review of the Datalog package?  Am I supposed to be doing something?  I thought I responded to all requests for changes.

John
Comment 44 Tim Niemueller 2012-09-27 12:57:20 EDT
I have checked the package and it looks fine now. Sorry that it took so long. Happy building and pushing.

APPROVED.
Comment 45 John D. Ramsdell 2012-09-29 15:09:28 EDT
New Package SCM Request
=======================
Package Name: datalog
Short Description: A Lightweight Deductive Database using Datalog
Owners: ramsdell
Branches: f17 f18 el6
InitialCC: tim
Comment 46 Jon Ciesla 2012-10-04 15:40:19 EDT
Git done (by process-git-requests).
Comment 47 Kevin Fenzi 2012-10-05 18:20:16 EDT
NOTE: fas account 'tim' is an inactive user... did you want to add Tim Niemueller to cc here?

If so, the account should be 'timn'
Comment 48 Tim Niemueller 2012-10-06 10:03:31 EDT
My FAS Account is indeed timn, but please do not add me as InitialCC, I was just the reviewer and will not maintain in any way.
Comment 49 John D. Ramsdell 2012-10-07 16:27:46 EDT
Please remove the initial CC as I will be the sole maintainer.
Comment 50 John D. Ramsdell 2012-10-07 16:30:18 EDT
Every time I try to build with

$ fedpkg build

I receive a time out.  I am behind a firewall.  Is it a proxy problem or does it have something to do with putting FAS account 'tim' as an InitialCC?
Comment 51 Kevin Fenzi 2012-10-07 17:17:37 EDT
(In reply to comment #49)
> Please remove the initial CC as I will be the sole maintainer.

Yeah, removed. 

(In reply to comment #50)
> Every time I try to build with
> 
> $ fedpkg build
> 
> I receive a time out.  I am behind a firewall.  Is it a proxy problem or
> does it have something to do with putting FAS account 'tim' as an InitialCC?

Sounds like a proxy issue. Is https_proxy env variable set to your https proxy?
Comment 52 John D. Ramsdell 2012-10-08 09:07:06 EDT
I still time out when the https_proxy var is set.

$ https_proxy=http://gatekeeper.mitre.org:80/ fedpkg -v build
Creating repo object from /home/ramsdell/fedora/datalog
Running: rpm -q --qf %{NAME}  --specfile datalog.spec
Could not read /home/ramsdell/.koji/config for config values
Initiating a koji session to http://koji.fedoraproject.org/kojihub
Could not execute build: timed out
$ 

I'll look for a laptop running Fedora 17.  If I find one, I'll try connecting from outside.
Comment 53 John D. Ramsdell 2012-10-12 08:31:59 EDT
I found a laptop and did the fedpkg builds outside the firewall.
Comment 54 John D. Ramsdell 2012-10-15 15:09:22 EDT
I did a "fedpkg build" for my f17 branch, but still have not been able to perform a "sudo yum install datalog" on any of my Fedora 17 machines.  Is there something more I must do?  I'm at a loss on how to debug this state of affairs.  The documentation in fedoraproject,org/wiki suggests to me that I done with my part.
Comment 56 Fedora Update System 2012-10-15 15:26:56 EDT
datalog-2.3-1.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/datalog-2.3-1.fc18
Comment 57 Fedora Update System 2012-10-15 15:28:03 EDT
datalog-2.3-1.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/datalog-2.3-1.fc17
Comment 58 Fedora Update System 2012-10-15 15:29:00 EDT
datalog-2.3-1.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/datalog-2.3-1.el6
Comment 59 John D. Ramsdell 2012-10-15 15:41:02 EDT
I was fooled by the statement saying "You're done!" and didn't read on after doing the builds.  I just submitted the updates for testing.  Thanks for your prompt reply.

The "you're done!" quote is from "Join the package collection maintainers" in the section titled "Update Your Branches (if desired)".

https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Import.2C_Commit.2Cand_Build_Your_Package

Hmmm.  I see I have to edit the comps.xml file when the package comes out of testing too.  I don't remember having to do that with tpm-quote-tools.  I've put in on my todo list.
Comment 60 Fedora Update System 2012-10-15 21:24:38 EDT
datalog-2.3-1.fc18 has been pushed to the Fedora 18 testing repository.
Comment 61 Michel Alexandre Salim 2012-10-17 03:25:35 EDT
(In reply to comment #59)

> Hmmm.  I see I have to edit the comps.xml file when the package comes out of
> testing too.  I don't remember having to do that with tpm-quote-tools.  I've
> put in on my todo list.

If it makes sense for your package to be installable as part of one of the package groups, yes. Otherwise, that's not necessary.

There's one comps file per actively-maintained Fedora release too, so make sure you edit the relevant ones.
Comment 62 John D. Ramsdell 2012-10-17 08:20:47 EDT
I get it now.  There is no need for me to edit the comps file as it's intended to be only explicitly installed, not as part of a package group.  And that explains why I didn't need to do it for tpm-quote-tools.  

Bodhi told me all my datalog releases have been pushed to testing, so it's time watch my karma rise.  In case any one cares, I plan to announce the fact that datalog is packaged for RedHat releases in the lua-users list once the package makes it to stable.

In other news, the sources for both datalog and tpm-quote-tools are hosted at SourceForge.  The download count for tpm-quote-tools is small as expected, as it is targeted at people very interested in strong security protection and are sophisticated enough to know how to use a TPM.  The datalog source download count is surprising high.  I cannot help wondering if it is being used in college courses or something like that.

As for tpm-quote-tools, a feature request that it be incorporated into TrouSerS has been excepted by Ken Yoder, where it should have been all along.  If things go as I hope they will, the programs in tpm-quote-tools will be moved into the trousers package and I will withdraw tpm-quote-tools.
Comment 63 Fedora Update System 2012-10-22 18:20:35 EDT
datalog-2.3-2.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/datalog-2.3-2.el6
Comment 64 John D. Ramsdell 2012-10-22 18:40:10 EDT
I removed the lua(api) requirement in the SPEC file because I received this message about el6:

From: <buildsys@fedoraproject.org>                                              
Subject: Broken dependencies: datalog                                           
To: <datalog-owner@fedoraproject.org>                                           
CC:                                                                             
Date: Sun, 21 Oct 2012 04:28:35 +0000 (1 day, 18 hours, 3 minutes ago)          
                                                                                
                                                                                
datalog has broken dependencies in the epel-6 tree:                             
On x86_64:                                                                      
        datalog-2.3-1.el6.x86_64 requires lua(abi) = 0:5.1                      
On i386:                                                                        
        datalog-2.3-1.el6.i686 requires lua(abi) = 0:5.1                        
On ppc64:                                                                       
        datalog-2.3-1.el6.ppc64 requires lua(abi) = 0:5.1                       
Please resolve this as soon as possible.
Comment 65 Michel Alexandre Salim 2012-10-24 06:12:50 EDT
(In reply to comment #64)
> I removed the lua(api) requirement in the SPEC file because I received this
> message about el6:
> 
per the draft Lua packaging guidelines, you're only supposed to use it in Fedora (and soon, EPEL 7).

You can guard it by using:

%if 0%{?fedora}
Requires: lua(abi) = ...
%else
Requires: lua >= ...
%endif
Comment 66 John D. Ramsdell 2012-10-24 09:09:20 EDT
The draft packaging guidelines says one CAN use lua(api)... to declare a runtime dependency, but for my package, rpmbuild computes all runtime dependencies.  So the text suggests to me there is no need to declare it.  Perhaps the text can be made more useful by stating exactly when a lua(api) dependency SHOULD be declared. As in:

From Fedora 16 and onwards (not RHEL 6!), the main lua package virtually provides lua(abi) = %{luaver}, so packages targeting this release that declare a runtime dependency on a particular Lua release SHOULD specify it as:

%if 0%{?fedora}
Requires: lua(abi) = %{luaver}
%else
%global luanext 5.2
Requires: lua >= %{luaver}
Requires: lua <  %{luanext}
%endif
Comment 67 Fedora Update System 2012-12-20 11:28:12 EST
datalog-2.3-1.fc17 has been pushed to the Fedora 17 stable repository.

Note You need to log in before you can comment on or make changes to this bug.