| Summary: | Review Request: python-lvm - Python module to use LVM | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Andy Grover <agrover> |
| Component: | Package Review | Assignee: | David Cantrell <dcantrell> |
| Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | rawhide | CC: | agk, dcantrell, dlehman, notting, package-review, prajnoha |
| Target Milestone: | --- | Flags: | dcantrell:
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: | 2012-08-07 23:56:08 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
|
Description
Andy Grover
2012-04-12 20:16:50 UTC
CC'ing authors of alternative python implementations that allow creation/use/modification of LVM to see if people want to share code. I'm planning on using this module for a service I'm working on that will allow remote configuration of a storage appliance. I'm the upstream maintainer (but not original author) for this module so I'm very open to collaboration -- I just need the functionality from Python :) Updated. Spec URL: http://fedorapeople.org/~grover/new/python-lvm.spec SRPM URL: http://fedorapeople.org/~grover/new/python-lvm-1.1-1.fc17.src.rpm changes: - License field was wrong, corrected to LGPLv2+ - New upstream release dcantrell: I looked at pyparted and saw the capability to create partitions with type 0x8e (LVM) but nothing to do with lvm PVs, VGs, or LVs specifically, right? I believe pyparted and python-lvm may be complimentary. Still looking for a pkg reviewer.. Correct, pyparted exposes the libparted API to Python programs. libparted just deals with creating partitions on physical devices. Functionality beyond that, for example, things that build on top of LVM physical volumes, are out of scope for libparted. Are pyparted and python-lvm complimentary, yes. I'll try to work in a review today. rpmlint output looks good: [dcantrel@rawhide ~]$ rpmlint python-lvm-1.1-1.fc17.src.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. The package looks pretty clean, but I have some questions/concerns: 1) Is the github repo the upstream? 2) Having the source archive be a gzipped tar file but named "v1.1" is bad form. Please correct this. See https://fedoraproject.org/wiki/Packaging/SourceURL for more information on options here. github presents a challenge because there is not a good way for us to reference tar.gz downloads and it is up to the maintainer to create those, though if you are also upstream I would recommend creating those. 3) The license in the spec file is correctly noted as LGPLv2+, but the source archive contains both a copy of the GPLv2+ and LGPLv2+. Reading the code, I see no mention of GPL-only licensed code. It's all LGPL. I would recommend removing the GPLv2+ COPYING file and just keeping the LGPLv2+ file. In fact, the FSF distributes that file as COPYING.LIB (see ftp://ftp.gnu.org/gnu/Licenses/), which is the name I recommend you use rather than COPYING.LESSER 4) The source archive unpacks to agrover-python-lvm-3363431, which is a little confusing. If you are generating this archive, please make it %{name}-%{version}. (In reply to comment #7) > 1) Is the github repo the upstream? Yes > 2) Having the source archive be a gzipped tar file but named "v1.1" is bad > form. Please correct this. See > https://fedoraproject.org/wiki/Packaging/SourceURL for more information on > options here. github presents a challenge because there is not a good way for > us to reference tar.gz downloads and it is up to the maintainer to create > those, though if you are also upstream I would recommend creating those. OK will do. > 3) The license in the spec file is correctly noted as LGPLv2+, but the source > archive contains both a copy of the GPLv2+ and LGPLv2+. Reading the code, I > see no mention of GPL-only licensed code. It's all LGPL. I would recommend > removing the GPLv2+ COPYING file and just keeping the LGPLv2+ file. In fact, > the FSF distributes that file as COPYING.LIB (see > ftp://ftp.gnu.org/gnu/Licenses/), which is the name I recommend you use rather > than COPYING.LESSER I went by this: http://www.gnu.org/licenses/gpl-howto.html which renames COPYING.LIB to COPYING.LESSER and recommends COPYING also included since COPYING.LESSER builds on COPYING. I have left it as-is for now, but am fine with either way. > 4) The source archive unpacks to agrover-python-lvm-3363431, which is a little > confusing. If you are generating this archive, please make it > %{name}-%{version}. Will do. Updated: Spec URL: http://fedorapeople.org/~grover/new/python-lvm.spec SRPM URL: http://repos.fedorapeople.org/repos/grover/target/fedora-17/SRPMS/python-lvm-1.1.1-1.fc17.src.rpm (In reply to comment #8) > (In reply to comment #7) > > 2) Having the source archive be a gzipped tar file but named "v1.1" is bad > > form. Please correct this. See > > https://fedoraproject.org/wiki/Packaging/SourceURL for more information on > > options here. github presents a challenge because there is not a good way for > > us to reference tar.gz downloads and it is up to the maintainer to create > > those, though if you are also upstream I would recommend creating those. > > OK will do. Much better now, thanks. > > 3) The license in the spec file is correctly noted as LGPLv2+, but the source > > archive contains both a copy of the GPLv2+ and LGPLv2+. Reading the code, I > > see no mention of GPL-only licensed code. It's all LGPL. I would recommend > > removing the GPLv2+ COPYING file and just keeping the LGPLv2+ file. In fact, > > the FSF distributes that file as COPYING.LIB (see > > ftp://ftp.gnu.org/gnu/Licenses/), which is the name I recommend you use rather > > than COPYING.LESSER > > I went by this: > > http://www.gnu.org/licenses/gpl-howto.html > > which renames COPYING.LIB to COPYING.LESSER and recommends COPYING also > included since COPYING.LESSER builds on COPYING. > > I have left it as-is for now, but am fine with either way. Huh, well that page is new to me. I find the FSF's suggestions on how to cram the GPL in to every piece of software is a little unnecessary. If the license is LGPL, just include that text. But that's just me. I have no problems if you want to keep it this way. > > 4) The source archive unpacks to agrover-python-lvm-3363431, which is a little > > confusing. If you are generating this archive, please make it > > %{name}-%{version}. > > Will do. > > Updated: > > Spec URL: http://fedorapeople.org/~grover/new/python-lvm.spec > SRPM URL: > http://repos.fedorapeople.org/repos/grover/target/fedora-17/SRPMS/python-lvm-1.1.1-1.fc17.src.rpm Looks clean, will post updated rpmlint and build output. Clean rpmlint: [dcantrel@rawhide ~]$ rpmlint python-lvm-1.1.1-1.fc17.src.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. Clean build:
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.KoCoh7
+ umask 022
+ cd /home/dcantrel/rpmbuild/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ cd /home/dcantrel/rpmbuild/BUILD
+ rm -rf python-lvm-1.1.1
+ /usr/bin/tar -xf -
+ /usr/bin/gzip -dc /home/dcantrel/rpmbuild/SOURCES/python-lvm-1.1.1.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd python-lvm-1.1.1
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.KWgWfo
+ umask 022
+ cd /home/dcantrel/rpmbuild/BUILD
+ cd python-lvm-1.1.1
+ LANG=C
+ export LANG
+ unset DISPLAY
+ /usr/bin/python setup.py build
running build
running build_ext
building 'lvm' extension
creating build
creating build/temp.linux-x86_64-2.7
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python2.7 -c liblvm.c -o build/temp.linux-x86_64-2.7/liblvm.o
creating build/lib.linux-x86_64-2.7
gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/liblvm.o -L/usr/lib64 -llvm2app -lpython2.7 -o build/lib.linux-x86_64-2.7/lvm.so
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.yIzEzG
+ umask 022
+ cd /home/dcantrel/rpmbuild/BUILD
+ '[' /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64 '!=' / ']'
+ rm -rf /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64
++ dirname /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64
+ mkdir -p /home/dcantrel/rpmbuild/BUILDROOT
+ mkdir /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64
+ cd python-lvm-1.1.1
+ LANG=C
+ export LANG
+ unset DISPLAY
+ /usr/bin/python setup.py install --skip-build --root /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64
running install
running install_lib
creating /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64/usr
creating /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64/usr/lib64
creating /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64/usr/lib64/python2.7
creating /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64/usr/lib64/python2.7/site-packages
copying build/lib.linux-x86_64-2.7/lvm.so -> /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64/usr/lib64/python2.7/site-packages
running install_egg_info
Writing /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64/usr/lib64/python2.7/site-packages/lvm-1.1.1-py2.7.egg-info
+ /usr/lib/rpm/find-debuginfo.sh --strict-build-id /home/dcantrel/rpmbuild/BUILD/python-lvm-1.1.1
extracting debug info from /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64/usr/lib64/python2.7/site-packages/lvm.so
57 blocks
+ '[' '%{buildarch}' = noarch ']'
+ QA_CHECK_RPATHS=1
+ case "${QA_CHECK_RPATHS:-}" in
+ /usr/lib/rpm/check-rpaths
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
Bytecompiling .py files below /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64/usr/lib64/python2.7/ using /usr/bin/python2.7
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Processing files: python-lvm-1.1.1-1.fc18.x86_64
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.1QVaL3
+ umask 022
+ cd /home/dcantrel/rpmbuild/BUILD
+ cd python-lvm-1.1.1
+ DOCDIR=/home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64/usr/share/doc/python-lvm-1.1.1
+ export DOCDIR
+ /usr/bin/mkdir -p /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64/usr/share/doc/python-lvm-1.1.1
+ cp -pr COPYING COPYING.LESSER README /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64/usr/share/doc/python-lvm-1.1.1
+ exit 0
Provides: lvm.so()(64bit) python-lvm = 1.1.1-1.fc18 python-lvm(x86-64) = 1.1.1-1.fc18
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) liblvm2app.so.2.2()(64bit) liblvm2app.so.2.2(Base)(64bit) libpthread.so.0()(64bit) libpython2.7.so.1.0()(64bit) python(abi) = 2.7 rtld(GNU_HASH)
Processing files: python-lvm-debuginfo-1.1.1-1.fc18.x86_64
Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64
Wrote: /home/dcantrel/rpmbuild/SRPMS/python-lvm-1.1.1-1.fc18.src.rpm
Wrote: /home/dcantrel/rpmbuild/RPMS/x86_64/python-lvm-1.1.1-1.fc18.x86_64.rpm
Wrote: /home/dcantrel/rpmbuild/RPMS/x86_64/python-lvm-debuginfo-1.1.1-1.fc18.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.VGw7hE
+ umask 022
+ cd /home/dcantrel/rpmbuild/BUILD
+ cd python-lvm-1.1.1
+ /usr/bin/rm -rf /home/dcantrel/rpmbuild/BUILDROOT/python-lvm-1.1.1-1.fc18.x86_64
+ exit 0
I approve, with the added comment that I personally don't feel it necessary to include the text of the GPL in a source release that's released under the LGPL. New Package SCM Request ======================= Package Name: python-lvm Short Description: Python bindings for LVM Owners: grover Branches: f17 InitialCC: Git done (by process-git-requests). (This looks to be a basic python wrapper around liblvm that we should probably distribute alongside liblvm itself in future, ensuring the two keep in sync with each other.) |