Bug 819951

Summary: Review Request: ostree - Linux-based operating system develop/build/deploy tool
Product: [Fedora] Fedora Reporter: Colin Walters <walters>
Component: Package ReviewAssignee: Michel Lind <michel>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: michel, package-review, yaneti
Target Milestone: ---Flags: michel: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-07-17 19:52:56 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: 819338    
Bug Blocks:    

Description Colin Walters 2012-05-08 17:00:31 UTC
Spec URL: http://fedorapeople.org/~walters/ostree/ostree.spec
SRPM URL: http://fedorapeople.org/~walters/ostree/ostree-2012.6-1.fc16.src.rpm
Description: OSTree is a tool for developing, building, and deploying Linux-based operating systems. It is most similar to tools like dpkg and rpm in "Linux distributions". However, it is not a package system (though one could be built on top).

Comment 1 Colin Walters 2012-05-08 17:01:02 UTC
Depends on linux-user-chroot in bug 819338

Comment 2 Colin Walters 2012-05-25 15:14:02 UTC
New upstream version SRPM: http://fedorapeople.org/~walters/ostree/ostree-2012.7-1.fc16.src.rpm

Comment 3 Michel Lind 2012-08-09 01:02:24 UTC
I was looking into getting Nix packaged for Fedora a while back, but looks like OSTree is a more relevant tool at the moment. Cc:ing myself, will review this and linux-user-chroot unless someone gets around to this before I can.

Comment 4 Colin Walters 2012-08-09 17:17:51 UTC
(In reply to comment #3)
> I was looking into getting Nix packaged for Fedora a while back, but looks
> like OSTree is a more relevant tool at the moment. Cc:ing myself, will
> review this and linux-user-chroot unless someone gets around to this before
> I can.

Thanks!  Let me update the spec file and rpmlint it etc. before you dive in, which I'm more motivated to do now that I know there's a reviewer.  Thanks!

Comment 5 Colin Walters 2012-08-13 15:14:22 UTC
Let's get linux-user-chroot in first?  Bug 819338

Comment 6 Michel Lind 2012-08-20 10:15:40 UTC
That just got approved; let me experiment with ostree before I commit to reviewing it. Question: the deal-breaker with Nix is the use of a new top-level directory (/nix); presumably ostree doesn't have such a directory path baked into it at compile time? (it's probably fine with the FPC if such path is specified at runtime).

Comment 7 Colin Walters 2012-08-20 18:37:16 UTC
(In reply to comment #6)
> That just got approved; let me experiment with ostree before I commit to
> reviewing it. Question: the deal-breaker with Nix is the use of a new
> top-level directory (/nix); presumably ostree doesn't have such a directory
> path baked into it at compile time? (it's probably fine with the FPC if such
> path is specified at runtime).

Well...it is hardcoded in some places (namely ostree-switch-root.c which gets called from dracut), but it's also a command-line option (--ostree-dir) for some utilities.

I'm willing to discuss the name/location of the directory, but following the Nix ticket, /var/lib strikes me as worse because it gives the impression that the data is managed/controlled by the "host" distribution, which isn't the case.

While it's possible to manipulate /ostree from the host (and this is what I currently do), the real intention is that you boot into it.  

It's not like ostree is "just any old package".  If it helps, I don't need to actually make /ostree from the RPM - I expect admins to do it by running "ostadmin init".

Also, if ostree really gets rejected because of this, I'll be very sad.  I spend a year of my life designing a system that allows fully atomic upgrades, and the response is bikeshedding over the name of a directory...

Ultimately, where I'd like to go is that the /ostree type toplevel directory *is* standardized.  Ideally we'd have FHS-like guidelines for the content of /ostree, like /ostree/etc and /ostree/var, so multiple independent codebases could use it.  Maybe it gets named /system or /os or something.

Comment 8 Colin Walters 2012-08-20 20:55:27 UTC
Note I just made the scripts to create a srpm with embedded-dependencies enabled work again:

http://git.gnome.org/browse/ostree/commit/?id=a571c83d82d4f99ae4027d96c4429761bf2e2d43

So if anyone's planning to look at a spec file, please consult that one as a reference too.

The default for Fedora 18 though will obviously be the non-embedded build.  I'll make a separate SRPM/spec for that.

But I *do* want this in EPEL6 so I can use it for tracking GNOME development from my RHEL6 workstation.  Originally I planned to include a GLib-backports system inside my code, but it grew too large.  It's simpler to just embed and not massively penalize the future.

Comment 9 Michel Lind 2012-08-21 04:27:09 UTC
(In reply to comment #7)
> (In reply to comment #6)
> > That just got approved; let me experiment with ostree before I commit to
> > reviewing it. Question: the deal-breaker with Nix is the use of a new
> > top-level directory (/nix); presumably ostree doesn't have such a directory
> > path baked into it at compile time? (it's probably fine with the FPC if such
> > path is specified at runtime).
> 
> Well...it is hardcoded in some places (namely ostree-switch-root.c which
> gets called from dracut), but it's also a command-line option (--ostree-dir)
> for some utilities.
> 
The FPC might be happier if all occurrences of /ostree can be overridden, but then again, it's hard to know without asking them directly.

> I'm willing to discuss the name/location of the directory, but following the
> Nix ticket, /var/lib strikes me as worse because it gives the impression
> that the data is managed/controlled by the "host" distribution, which isn't
> the case.
> 
I agree

> Also, if ostree really gets rejected because of this, I'll be very sad.  I
> spend a year of my life designing a system that allows fully atomic
> upgrades, and the response is bikeshedding over the name of a directory...

Same story with Nix :/ . Nix's tool actually allows the store location to be configurable at compile time (though I've not tested it with anything but the default); the problem with using anything but /nix is that (as I suspect will be the case with /ostree) one loses the ability to use pre-compiled archives. It will be nice if OSTree comes by default compiled with a silly FHS-compliant default, but users can override this in a configuration file parsed at runtime. Similar to how Richard Hughes had to clobber the defaults for zif not to read/write the yum database, but provide instructions on how to re-enable it.

> 
> Ultimately, where I'd like to go is that the /ostree type toplevel directory
> *is* standardized.  Ideally we'd have FHS-like guidelines for the content of
> /ostree, like /ostree/etc and /ostree/var, so multiple independent codebases
> could use it.  Maybe it gets named /system or /os or something.

That would be great. Do you want to ask for clarification on the packaging list before we go further? We can go ahead quietly too but that might cause a furor later on.

Comment 10 Colin Walters 2012-08-21 13:19:18 UTC
(In reply to comment #9)
> 
> the problem with using anything but /nix is that (as I suspect
> will be the case with /ostree) one loses the ability to use pre-compiled
> archives.

That's not the case for OSTree - it's more like git.  You can put repositories anywhere you want.  The /ostree directory is pretty much *only* hardcoded right now in the initramfs tool, and I could allow specifying it on the kernel command line too.

> That would be great. Do you want to ask for clarification on the packaging
> list before we go further? We can go ahead quietly too but that might cause
> a furor later on.

Yes.  At a very high level, I think there needs to be some mechanism to allow "experimental" or "research" software in the repository.  It's not like I'm suggesting this be installed by default.  *And* I'm willing to go through the FHS eventually and standardize it.

But I can't standardize it until I get more feedback about how it actually works, and I can't get more feedback about how it actually works until it's packaged.

Comment 11 Michel Lind 2012-09-15 10:11:35 UTC
(In reply to comment #10)

> But I can't standardize it until I get more feedback about how it actually
> works, and I can't get more feedback about how it actually works until it's
> packaged.

Given the hardcoded dependency is minimal as you said, I'll go ahead and start reviewing then.

Comment 12 Michel Lind 2012-09-17 01:26:17 UTC
Testing this, which is the latest SRPM: http://fedorapeople.org/~walters/ostree/ostree-2012.9-1.fc17.src.rpm

(note that spec still points to .8-1)

Comment 13 Michel Lind 2012-09-17 05:50:25 UTC
Several problems need fixing -- please consult the list below. Will try and do functional testing while these are addressed.

Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



==== C/C++ ====
[x]: MUST Header files in -devel subpackage, if present.
[x]: MUST Package does not contain any libtool archives (.la)
[x]: MUST Package does not contain kernel modules.
[x]: MUST Package contains no static executables.
[!]: MUST Rpath absent or only used for internal libs.
     Note: See rpmlint output
[!]: MUST Development (unversioned) .so files in -devel subpackage, if
     present.
     Note: Unversioned so-files in non-devel package (fix or
     explain):ostree-2012.9-1.fc17.x86_64.rpm : /usr/lib64/ostree/libostree.so


==== Generic ====
[x]: EXTRA Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[!]: EXTRA Spec file according to URL is the same as in SRPM.
     Spec file is still for .8, not for .9
[x]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[x]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[!]: MUST Package contains no bundled libraries.
     Can the package be built against the system glib and libsoup, instead of
     embedding them?
[!]: MUST Changelog in prescribed format.
     Changelog is missing entirely (uncovering a bug in fedora-review
     so this turns out to be a useful problem)
[x]: MUST Sources contain only permissible code or content.   
[!]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: defattr(....) present in %files section. This is OK if packaging
     for EPEL5. Otherwise not needed
[x]: MUST Macros in Summary, %description expandable at SRPM build time.
[-]: MUST Package contains desktop file if it is a GUI application.
[!]: MUST Development files must be in a -devel package
[x]: MUST Package requires other packages for directories it uses.
[x]: MUST Package uses nothing in %doc for runtime.
[x]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[!]: MUST Package does not contain duplicates in %files.
     Note: warning: File listed twice: /usr/lib64/ostree
[x]: MUST Package complies to the Packaging Guidelines
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[!]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf is only needed if supporting EPEL5
[-]: MUST Large documentation files are in a -doc subpackage, if required.
[!]: MUST If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %doc.
[!]: MUST License field in the package spec file matches the actual license.
     Should be LGPLv2+ and GPLv2+ and BSD

     Note: Checking patched sources after %prep for licenses. Licenses found:
     "LGPL (v2 or later)", "GPL (v2 or later)", "LGPL (v2 or later) (with
     incorrect FSF address)", "*No copyright* LGPL (with incorrect FSF
     address)", "BSD (3 clause)", "LGPL", "LGPL (v2.1 or later) (with
     incorrect FSF address)", "GPL (v2 or later) (with incorrect FSF
     address)", "LGPL (with incorrect FSF address)", "LGPL (v2.1 or later)"
     For detailed output of licensecheck see file:
     /home/michel/sources/fedora/projects/FedoraReview/src/819951-ostree/licensecheck.txt
[x]: MUST Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: MUST Package is named using only allowed ascii characters.
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[-]: MUST If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: MUST Package must own all directories that it creates.
[x]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[x]: MUST Package is not relocatable.
[x]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[-]: MUST Package contains systemd file(s) if in need.
[x]: MUST File names are valid UTF-8.
[x]: MUST Useful -debuginfo package or justification otherwise.
[x]: SHOULD Reviewer should test that the package builds in mock.
[x]: SHOULD Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[!]: SHOULD Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean is needed only if supporting EPEL5
[-]: SHOULD If the source package does not include license text(s) as a
     separate file from upstream, the packager SHOULD query upstream to
     include it.
[x]: SHOULD Dist tag is present.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[x]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[?]: SHOULD Package functions as described.
[x]: SHOULD Latest version is packaged.
[x]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD SourceX tarball generation or download is documented.
[x]: SHOULD SourceX / PatchY prefixed with %{name}.
[x]: SHOULD SourceX is a working URL.
[-]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[!]: SHOULD %check is present and all tests pass.
[!]: SHOULD Packages should try to preserve timestamps of original installed
     files.
     Should probably override with INSTALL='install -p -c'
[x]: SHOULD Spec use %global instead of %define.

Issues:
[!]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: defattr(....) present in %files section. This is OK if packaging
     for EPEL5. Otherwise not needed
See: http://fedoraproject.org/wiki/Packaging/Guidelines#FilePermissions
[!]: MUST Package does not contain duplicates in %files.
     Note: warning: File listed twice: /usr/lib64/ostree
See: http://fedoraproject.org/wiki/Packaging/Guidelines#DuplicateFiles
[!]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf is only needed if supporting EPEL5
See: None
[!]: MUST Rpath absent or only used for internal libs.
     Note: See rpmlint output
See: http://fedoraproject.org/wiki/Packaging/Guidelines#Beware_of_Rpath
[!]: SHOULD Packages should try to preserve timestamps of original installed
     files.
     Should probably override with INSTALL='install -p -c'

Rpmlint
-------
Checking: ostree-debuginfo-2012.9-1.fc17.x86_64.rpm
          ostree-2012.9-1.fc17.x86_64.rpm
          ostree-2012.9-1.fc17.src.rpm
ostree-debuginfo.x86_64: E: no-changelogname-tag
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/include/glib-2.0/gio/gsocketconnection.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gapplicationcommandline.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gapplicationcommandline.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gactiongroupexporter.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gunixfdlist.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gactionmap.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gactiongroup.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gactiongroup.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gactionmap.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gremoteactiongroup.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/include/glib-2.0/glib/gthread.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gsocketclient.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/include/glib-2.0/glib/gcharset.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gthreadedsocketservice.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gunicode.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gsocketservice.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gsocketservice.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gshell.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gthreadedsocketservice.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gsocketcontrolmessage.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gmenuexporter.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gapplication.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gapplication.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gremoteactiongroup.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gmarkup.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/include/glib-2.0/glib/gerror.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gmarkup.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gunibreak.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gspawn.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gsimpleactiongroup.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gsimpleactiongroup.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gsocketconnection.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gactiongroupexporter.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gsimpleaction.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gsimpleaction.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gthreadprivate.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gfileutils.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gerror.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gstdio.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gunicollate.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gfileutils.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/include/glib-2.0/glib/gspawn.h
ostree-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/libsoup/libsoup/soup-cookie.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/include/glib-2.0/glib/gunicode.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gthread.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gaction.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/inotify/inotify-missing.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gmenu.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gaction.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gmenu.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/inotify/inotify-path.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/inotify/inotify-path.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gunidecomp.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/include/glib-2.0/glib/gfileutils.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/inotify/inotify-helper.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/inotify/inotify-helper.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gdbusmenumodel.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gdbusmenumodel.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gshell.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/include/glib-2.0/glib/gkeyfile.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gmenumodel.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gmenumodel.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/inotify/inotify-sub.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/inotify/inotify-sub.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/src/daemon/ot-daemon.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gspawn.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gdbusactiongroup.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gdbusactiongroup.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gcharset.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gatomic.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/inotify/inotify-kernel.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/inotify/inotify-kernel.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gunixcredentialsmessage.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gkeyfile.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gsocketlistener.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gkeyfile.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gstdio.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/gtimezone.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/glib-init.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/glib/glib-init.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/include/glib-2.0/glib/gmarkup.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gtcpwrapperconnection.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gtcpconnection.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/include/glib-2.0/gio/gsocketclient.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/inotify/inotify-missing.c
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gunixfdmessage.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/inotify/inotify-diag.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/gunixconnection.h
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-embeddeps-2012.9/embedded-dependencies/glib/gio/inotify/inotify-diag.c
ostree.x86_64: E: no-changelogname-tag
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgthread-2.0.so.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgobject-2.0.so.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgobject-2.0.so.0.3311.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgmodule-2.0.so.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgthread-2.0.so.0.3311.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libsoup-2.4.so.1 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgio-2.0.so.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgio-2.0.so.0.3311.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libsoup-2.4.so.1.5.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgmodule-2.0.so.0.3311.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: W: no-manual-page-for-binary ostree-switch-root
ostree.x86_64: W: no-manual-page-for-binary ostadmin
ostree.x86_64: W: no-manual-page-for-binary ostree-pull
ostree.x86_64: W: no-manual-page-for-binary ostree-run-triggers
ostree.src: E: no-changelogname-tag
3 packages and 0 specfiles checked; 101 errors, 5 warnings.


Rpmlint (installed packages)
----------------------------
# rpmlint ostree
ostree.x86_64: E: no-changelogname-tag
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgthread-2.0.so.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgobject-2.0.so.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgobject-2.0.so.0.3311.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgmodule-2.0.so.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgthread-2.0.so.0.3311.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libsoup-2.4.so.1 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgio-2.0.so.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgio-2.0.so.0.3311.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libsoup-2.4.so.1.5.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/ostree/libgmodule-2.0.so.0.3311.0 ['/builddir/build/BUILD/ostree-embeddeps-2012.9/embedded-dependencies/EMBEDDEPS/lib']
ostree.x86_64: W: no-manual-page-for-binary ostree-switch-root
ostree.x86_64: W: no-manual-page-for-binary ostadmin
ostree.x86_64: W: no-manual-page-for-binary ostree-pull
ostree.x86_64: W: no-manual-page-for-binary ostree-run-triggers
1 packages and 0 specfiles checked; 11 errors, 4 warnings.
# echo 'rpmlint-done:'

Requires
--------
ostree-debuginfo-2012.9-1.fc17.x86_64.rpm (rpmlib, GLIBC filtered):
    

ostree-2012.9-1.fc17.x86_64.rpm (rpmlib, GLIBC filtered):
    
    /bin/bash  
    /bin/sh  
    libc.so.6()(64bit)  
    libdl.so.2()(64bit)  
    libffi.so.5()(64bit)  
    libgcc_s.so.1()(64bit)  
    libgcc_s.so.1(GCC_3.0)(64bit)  
    libgcc_s.so.1(GCC_3.3.1)(64bit)  
    libgio-2.0.so.0()(64bit)  
    libglib-2.0.so.0()(64bit)  
    libgmodule-2.0.so.0()(64bit)  
    libgobject-2.0.so.0()(64bit)  
    libgthread-2.0.so.0()(64bit)  
    libostree.so()(64bit)  
    libpthread.so.0()(64bit)  
    libresolv.so.2()(64bit)  
    librt.so.1()(64bit)  
    libselinux.so.1()(64bit)  
    libsoup-2.4.so.1()(64bit)  
    libxml2.so.2()(64bit)  
    libxml2.so.2(LIBXML2_2.4.30)(64bit)  
    libz.so.1()(64bit)  
    libz.so.1(ZLIB_1.2.2)(64bit)  
    rtld(GNU_HASH)  

Provides
--------
ostree-debuginfo-2012.9-1.fc17.x86_64.rpm:
    
    ostree-debuginfo = 2012.9-1.fc17
    ostree-debuginfo(x86-64) = 2012.9-1.fc17

ostree-2012.9-1.fc17.x86_64.rpm:
    
    libgio-2.0.so.0()(64bit)  
    libglib-2.0.so.0()(64bit)  
    libgmodule-2.0.so.0()(64bit)  
    libgobject-2.0.so.0()(64bit)  
    libgthread-2.0.so.0()(64bit)  
    libostree.so()(64bit)  
    libsoup-2.4.so.1()(64bit)  
    ostree = 2012.9-1.fc17
    ostree(x86-64) = 2012.9-1.fc17

MD5-sum check
-------------
http://ftp.gnome.org/pub/GNOME/sources/ostree/2012.9/ostree-embeddeps-2012.9.tar.gz :
  CHECKSUM(SHA256) this package     : e88fe67d32cf8622da434003d1dce435f32c449608967c0d253e2c5e903c1f73
  CHECKSUM(SHA256) upstream package : e88fe67d32cf8622da434003d1dce435f32c449608967c0d253e2c5e903c1f73


Generated by fedora-review 0.2.0 (2fb2447) last change: 2012-07-22
Command line :./fedora-review -c -m fedora-17-x86_64 -b 819951
External plugins:

Comment 14 Colin Walters 2012-09-18 13:48:36 UTC
Let's do the non-embedded dependency version first, which should be able to go into Fedora 18.  I'll post an update with that soon.  Then we can "backport".

Comment 15 Colin Walters 2012-09-21 00:32:40 UTC
SRPM: http://fedorapeople.org/~walters/ostree/ostree-2012.9.28.g08be599-1.fc19.src.rpm
SPEC: http://fedorapeople.org/~walters/ostree/ostree.spec

This is a non-embedded dependency build, targeted for Fedora 18.  (The binary mostly runs on Fedora 17 though, except if you try ostree admin which requires a newer symbol from glib).

Things I *didn't* address:

- There's no changelog tag yet...I'll add one when I'm forced to by putting it in fedora git.  I think having changelogs inside the spec files is incredibly stupid.
- The man page warnings
- I'm not inclined to cargo cult an override of INSTALL= for the make install line - this should be fixed globally in rpm.  Why do the timestamps of the built files even matter?

Things I *did* address:

- Dropping embedded dependencies, per above
- License tag
- Duplicate %files list
- %defattr, %clean, etc.

Note this is a git snapshot, so the tarball isn't on GNOME servers.  I plan to do a real release relatively soon.

Comment 16 Colin Walters 2012-09-26 13:45:48 UTC
New release:

SRPM: http://fedorapeople.org/~walters/ostree/ostree-2012.11-1.fc18.src.rpm
SPEC: http://fedorapeople.org/~walters/ostree/ostree.spec

Not much changed from the above other than a new upstream release.

Comment 17 Michel Lind 2012-10-31 10:23:01 UTC
Apologies for the review delay!

I ran into some problem following the instructions at https://live.gnome.org/OSTree/GnomeOSTree :

# ostree pull --repo=repo --related gnome
Fetching http://ostree.gnome.org/repo/config

Invalid mode 'archive-z2' in repository configuration

Any idea what could be causing this? On Fedora 18, using the latest build of linux-user-chroot from Koji

Comment 18 Colin Walters 2012-10-31 13:17:06 UTC
(In reply to comment #17)
> Apologies for the review delay!
> 
> I ran into some problem following the instructions at
> https://live.gnome.org/OSTree/GnomeOSTree :
> 
> # ostree pull --repo=repo --related gnome
> Fetching http://ostree.gnome.org/repo/config
> 
> Invalid mode 'archive-z2' in repository configuration
> 
> Any idea what could be causing this? On Fedora 18, using the latest build of
> linux-user-chroot from Koji

I added a new repository format, it's only in git at the moment.  I'll do a new ostree release soon.

Comment 19 Colin Walters 2012-11-01 10:33:08 UTC
(In reply to comment #18)

> I added a new repository format, it's only in git at the moment.  I'll do a
> new ostree release soon.

Done:

http://fedorapeople.org/~walters/ostree/ostree.spec
http://fedorapeople.org/~walters/ostree/ostree-2012.12-1.fc17.src.rpm

Comment 20 Michel Lind 2012-11-01 17:30:25 UTC
Odd, I did a re-review just before you posted 2012.12, and distinctly recalled posting it, but now it's gone. Either there was a Bugzilla problem or the request timed out in my browser without me noticing.

Most issues are still valid, please see the (blessedly short) issues list at the top of the review.


Package Review
==============

Key:
[x] = Pass
[!] = Fail
[-] = Not applicable
[?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
[!]: Package installs properly.
     Red herring - linux-user-chroot is not pushed to F-18 yet.
     When releasing this, both should be pushed out in the same update
     Note: Installation errors (see attachment)
See: https://fedoraproject.org/wiki/Packaging:Guidelines
[!]: If (and only if) the source package includes the text of the license(s)
     in its own file, then that file, containing the text of the license(s)
     for the package is included in %doc.

     The COPYING* files must, and README.md and TODO files should, be
     listed as %doc

[!]: If the package is under multiple licenses, the licensing breakdown must
     be documented in the spec.

[!]: Spec use %global instead of %define.
     Note: %define enable_embedded_dependencies 0 %define build_name ostree-
     embeddeps %define build_name ostree %define embedded_dependencies_option
     --enable-embedded-dependencies %define embedded_dependencies_option
     %{nil}

===== MUST items =====

C/C++:
[x]: Header files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.
[x]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package contains no bundled libraries.
[x]: Changelog in prescribed format.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Sources contain only permissible code or content.
[-]: Each %files section contains %defattr if rpm < 4.4
[x]: Macros in Summary, %description expandable at SRPM build time.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[x]: Package requires other packages for directories it uses.
[x]: Package uses nothing in %doc for runtime.
[x]: Package is not known to require ExcludeArch.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package complies to the Packaging Guidelines
[x]: Spec file lacks Packager, Vendor, PreReq tags.
[!]: If (and only if) the source package includes the text of the license(s)
     in its own file, then that file, containing the text of the license(s)
     for the package is included in %doc.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "GPL (v2 or later)", "LGPL (v2 or later) (with incorrect FSF address)",
     "Unknown or generated". 3 files have unknown license. Detailed output of
     licensecheck in
     /home/michel/sources/fedora/reviews/819951-ostree/licensecheck.txt
[x]: Package consistently uses macro is (instead of hard-coded directory
     names).
[!]: If the package is under multiple licenses, the licensing breakdown must
     be documented in the spec.
[x]: Package is named using only allowed ASCII characters.
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[x]: Package do not use a name that already exist
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[!]: Package installs properly.
     Note: Installation errors (see attachment)
[x]: Package is not relocatable.
[x]: Requires correct, justified where necessary.
[x]: CheckResultdir
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file is legible and written in American English.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[-]: Package contains systemd file(s) if in need.
[x]: File names are valid UTF-8.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Large documentation must go in a -doc subpackage.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[-]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Also targeting RHEL 6, so this is still needed
     Note: %clean present but not required
[-]: If the source package does not include license text(s) as a separate file
     from upstream, the packager SHOULD query upstream to include it.
[x]: Dist tag is present.
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[!]: Package functions as described.
     Not working with new repo format, but this can be fixed later
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: SourceX tarball generation or download is documented.
[x]: SourceX / PatchY prefixed with %{name}.
[x]: SourceX is a working URL.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[!]: %check is present and all tests pass.
[!]: Packages should try to preserve timestamps of original installed files.
[!]: Spec use %global instead of %define.
     Note: %define enable_embedded_dependencies 0 %define build_name ostree-
     embeddeps %define build_name ostree %define embedded_dependencies_option
     --enable-embedded-dependencies %define embedded_dependencies_option
     %{nil}

===== EXTRA items =====

Generic:
[!]: Rpmlint is run on all installed packages.
     Note: Mock build failed
[x]: Spec file according to URL is the same as in SRPM.
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.


Installation errors
-------------------
INFO: mock.py version 1.1.26 starting...
Start: init plugins
INFO: selinux enabled
Finish: init plugins
Start: run
Mock Version: 1.1.26
INFO: Mock Version: 1.1.26
Start: lock buildroot
INFO: installing package(s): /home/michel/sources/fedora/reviews/819951-ostree/results/ostree-debuginfo-2012.11-1.fc18.x86_64.rpm /home/michel/sources/fedora/reviews/819951-ostree/results/ostree-2012.11-1.fc18.x86_64.rpm
ERROR: Command failed: 
 # ['/usr/bin/yum', '--installroot', '/var/lib/mock/fedora-18-x86_64/root/', 'install', '/home/michel/sources/fedora/reviews/819951-ostree/results/ostree-debuginfo-2012.11-1.fc18.x86_64.rpm', '/home/michel/sources/fedora/reviews/819951-ostree/results/ostree-2012.11-1.fc18.x86_64.rpm', '--setopt=tsflags=nocontexts']
Error: Package: ostree-2012.11-1.fc18.x86_64 (/ostree-2012.11-1.fc18.x86_64)
           Requires: linux-user-chroot
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest



Rpmlint
-------
Checking: ostree-2012.11-1.fc18.src.rpm
          ostree-debuginfo-2012.11-1.fc18.x86_64.rpm
          ostree-2012.11-1.fc18.x86_64.rpm
ostree.src: E: no-changelogname-tag
ostree-debuginfo.x86_64: E: no-changelogname-tag
ostree-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/ostree-2012.11/src/daemon/ot-daemon.c
ostree.x86_64: E: no-changelogname-tag
ostree.x86_64: W: no-manual-page-for-binary ostree-switch-root
ostree.x86_64: W: no-manual-page-for-binary ostree-pull
ostree.x86_64: W: no-manual-page-for-binary ostree-run-triggers
3 packages and 0 specfiles checked; 4 errors, 3 warnings.




Requires
--------
ostree-debuginfo-2012.11-1.fc18.x86_64.rpm (rpmlib, GLIBC filtered):
    

ostree-2012.11-1.fc18.x86_64.rpm (rpmlib, GLIBC filtered):
    
    /bin/bash
    /bin/sh
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgio-2.0.so.0()(64bit)
    libglib-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libostree.so()(64bit)
    libpthread.so.0()(64bit)
    libsoup-2.4.so.1()(64bit)
    linux-user-chroot
    rtld(GNU_HASH)



Provides
--------
ostree-debuginfo-2012.11-1.fc18.x86_64.rpm:
    
    ostree-debuginfo = 2012.11-1.fc18
    ostree-debuginfo(x86-64) = 2012.11-1.fc18

ostree-2012.11-1.fc18.x86_64.rpm:
    
    libostree.so()(64bit)
    ostree = 2012.11-1.fc18
    ostree(x86-64) = 2012.11-1.fc18



Unversioned so-files
--------------------
ostree-2012.11-1.fc18.x86_64.rpm: /usr/lib64/ostree/libostree.so

MD5-sum check
-------------
http://ftp.gnome.org/pub/GNOME/sources/ostree/2012.11/ostree-2012.11.tar.xz :
  CHECKSUM(SHA256) this package     : 423d8db813478bdff87edb68796a6f8893748ca3f72cb48314f437172ecb2ead
  CHECKSUM(SHA256) upstream package : 423d8db813478bdff87edb68796a6f8893748ca3f72cb48314f437172ecb2ead


Generated by fedora-review 0.3.1 (b71abc1) last change: 2012-10-16
Buildroot used: fedora-18-x86_64
Command line :/usr/bin/fedora-review -m fedora-18-x86_64 -b 819951

Comment 21 Colin Walters 2012-11-06 00:53:26 UTC
Thanks for the review!

(In reply to comment #20)

> [!]: Package installs properly.
>      Red herring - linux-user-chroot is not pushed to F-18 yet.
>      When releasing this, both should be pushed out in the same update
>      Note: Installation errors (see attachment)
> See: https://fedoraproject.org/wiki/Packaging:Guidelines

Ok, will do.

> [!]: If (and only if) the source package includes the text of the license(s)
>      in its own file, then that file, containing the text of the license(s)
>      for the package is included in %doc.
> 
>      The COPYING* files must, and README.md and TODO files should, be
>      listed as %doc

Fixed.

> [!]: If the package is under multiple licenses, the licensing breakdown must
>      be documented in the spec.

Fixed...though this sort of text is exactly what the COPYING file in the upstream source code is attempting to describe.

> [!]: Spec use %global instead of %define.
>      Note: %define enable_embedded_dependencies 0 %define build_name ostree-
>      embeddeps %define build_name ostree %define embedded_dependencies_option
>      --enable-embedded-dependencies %define embedded_dependencies_option
>      %{nil}

Fixed (I think).  Where is this guideline?


New spec: http://fedorapeople.org/~walters/ostree/ostree.spec
New SRPM: http://fedorapeople.org/~walters/ostree/ostree-2012.12-1.fc17.src.rpm

Comment 22 Michel Lind 2012-11-16 08:53:57 UTC
(In reply to comment #21)
> Thanks for the review!

And the changes look good -- APPROVED
> > [!]: If the package is under multiple licenses, the licensing breakdown must
> >      be documented in the spec.
> 
> Fixed...though this sort of text is exactly what the COPYING file in the
> upstream source code is attempting to describe.
> 
True, though as COPYING is often just the GPL text, it helps to have a comment pointing out where such a documentation can be found.

> > [!]: Spec use %global instead of %define.
> >      Note: %define enable_embedded_dependencies 0 %define build_name ostree-
> >      embeddeps %define build_name ostree %define embedded_dependencies_option
> >      --enable-embedded-dependencies %define embedded_dependencies_option
> >      %{nil}
> 
> Fixed (I think).  Where is this guideline?
> 
Yup; here:
http://fedoraproject.org/wiki/Packaging:Guidelines#.25global_preferred_over_.25define

Comment 23 Colin Walters 2012-11-19 20:32:25 UTC
New Package SCM Request
=======================
Package Name: ostree
Short Description: Linux-based operating system develop/build/deploy tool
Owners: walters
Branches: f18 el6
InitialCC: walters

Comment 24 Gwyn Ciesla 2012-11-19 20:46:04 UTC
Git done (by process-git-requests).

Comment 25 Colin Walters 2014-07-17 19:52:56 UTC
This was built long ago,