[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: repacking ossim source code in git.



Hello Bas,

On Wed, Jan 6, 2016 at 8:26 PM, Sebastiaan Couwenberg <sebastic@xs4all.nl> wrote:
On 06-01-16 19:56, Rashad Kanavath wrote:
> On Wed, Jan 6, 2016 at 7:40 PM, Sebastiaan Couwenberg wrote:
>> On 06-01-16 18:21, Rashad Kanavath wrote:
>>> I need to know if this change is acceptable. There is currently an
>> upstream
>>> branch named upstream/1.8.20.3+ds and upstream/1.8.20.3 . The latter was
>>> created with above gbp.conf
>>
>> The filter option duplicates functionality provided by uscan +
>> Files-Excluded in the copyright file. Let's stick to uscan for now.
>>
>
> So I can remove filter option and pick up on required files from
> ossim_package_support/cmake/CMakeModules/ and then use uscan.
>
> I can add ossim_package_support/* in Files-Excluded and then in the Files
> section. And can I list a few files from
> ossim_package_support/cmake/CMakeModules/. ?

The only change I think is needed now is to update the cmake patch to
included the updated CMakeModules. That doesn't require changes to the
watch file nor Files-Excluded list in the copyright file.

When uscan uses repackaging it first downloads the upstream tarball
using the upstream tarball name (ossim-1.8.20-3.tar.gz), then it
excludes all the files listed from the Files-Excluded list to create the
orig.tar.gz for the Debian package (ossim_1.8.20.3+ds.orig.tar.gz).

You can unpack the (not repacked) upstream tarball to /tmp and copy the
relevant files from the CMakeModules directory to the packaging tree
(after applying the cmake patch of course). The procedure would be as
follows:

 # Download & unpack upstream tarball
 uscan --verbose --download-current-version --force-download
 tar xavf ../ossim-1.8.20-3.tar.gz -C /tmp/
 # Apply the cmake patch
 quilt push cmake
 # Add new files not included in the cmake patch before
 quilt add ossim/CMakeModules/FindGeotrans.cmake
 quilt add ossim/CMakeModules/FindHDF5A.cmake
 quilt add ossim/CMakeModules/FindLCMS2.cmake
 # Update CMakeModules files
 cp /tmp/ossim-1.8.20-3/ossim_package_support/cmake/CMakeModules/* \
    ossim/CMakeModules/
 # Refresh cmake patch to include the changes
 quilt refresh
 # Refresh all patches listed in the series files after the cmake patch
 # (repeat the push & refresh commands until end of series is reached)
 quilt push && quilt refresh
 # Unapply all patches, those changes shouldn't be commited in git
 quilt pop -a
 # Remove quilt .pc directory
 rm -rf .pc
 # Review changes to be committed
 git status
 git diff

Okay. If picking only required is making things complex. I can update the cmake patch. But they must be updated with every release even though the patch can be applied without rejects. Moreover, cmake patch would never get into upstream and I thought that add burden of package maintainers. 

You should now have only updated patches, if so, add a changelog entry
to document the update of the cmake patch and commit the changes.

> All I need is FindGEOS.cmake (because cmake still doesn't provide it),
> OssimUtilities, OssimMacros, OssimVersion. Only these are mandatory. Other
> Find* are optional. in case cmake or the corresponding project does not
> provide them.

The cmake patch that frankie added seems to include the entire
CMakeModules directory, having it included Find* modules that aren't
used is not a problem. Updating all is easier that just those that are
actually used.

> Should I delete and recreate the branch upstream/1.8.20.3+ds. I tried to
> delete and it says cannot find branch upstream/1.8.20.3+ds. I will check it
> tomorrow.

upstream/1.8.20.3+ds is not a branch, it's a tag of a commit in the
upstream branch.

If you imported your new tarball with `gbp import-orig` it will have
created the upstream/1.8.20.3 tag which you need to delete before
pushing your changes to Alioth (use `git tag -d`). You also need to undo
the changes to the upstream and pristine-tar branches for your test tarball.

> Last point,
> The patch to ossim/CMakeLists.txt seems inappropriate to me. Do we need to
> provide both static and shared in the single package ?

I don't know why it was added, you should ask frankie who added it. I
kept these changes because it was added for a reason, and didn't want to
make drastic changes to the ossim package which I only updated to fix
some bugs for 1.8.16, and recently to update it to 1.8.20 to assist the
OSGeo-Live effort which uses the packaging too.

All it does is creating a static library called ossimstatic. But this was not installed in a separate .install files and IIRC, the build seems to ignore it. It gives me libossim.a instead of libossimstatic.a

Maybe a static ossim might be required for some other debian packages.

If package must give both static and shared libs, should we add another package libossimstatic  in debian/control to keep it clean ?

I would prefer not to keep static and shared in same package if asked. ;)

@Fankie, 
any comments ?

Kind Regards,

Bas

--
 GPG Key ID: 4096R/6750F10AE88D4AF1
Fingerprint: 8182 DE41 7056 408D 6146  50D1 6750 F10A E88D 4AF1




--
Regards,
   Rashad

Reply to: