Making a package obsolete

Ken Brown kbrown@cornell.edu
Mon May 15 17:09:00 GMT 2017


On 5/15/2017 11:56 AM, Jon Turney wrote:
> On 15/05/2017 15:30, Ken Brown wrote:
>> On 5/14/2017 1:38 PM, Jon Turney wrote:
>>> On 13/05/2017 20:44, Ken Brown wrote:
>>>> On 5/13/2017 7:12 AM, Jon Turney wrote:
>>>>> On 12/05/2017 22:02, Ken Brown wrote:
>>>>>> I have a package that is going to become obsolete, but its contents
>>>>>> will
>>>>>> be distributed among several other packages.  So I can't handle
>>>>>> this by
>>>>>> defining OBSOLETES in any one .cygport file.  Is there a standard
>>>>>> way to
>>>>>> deal with this using cygport, or should I just create the necessary
>>>>>> tarballs and .hint file manually?
>>>>>
>>>>> I think the best way to do that is to bump your package revision,
>>>>> change
>>>>> it's category to _obsolete, make it's contents empty, and make it
>>>>> depend
>>>>> on the packages which are replacing it.
>>>>
>>>> Yes, that was my first thought.  But there's no longer a source file
>>>> for
>>>> the obsolete package[1], and cygport complains that SRC_URI must be
>>>> defined.  Maybe cygport should be patched to allow an empty SRC_URI
>>>> when
>>>> the category is _obsolete.  Or do you see another way around this?
>>>
>>> I would think you can use the same SRC_URI as previously, but set
>>> PKG_CONTENTS="" and PKG_IGNORE="*" ?
>>
>> You're right, I can do something like that.  I was being overly pedantic
>> in wanting SRC_URI to be "accurate".  Sorry for the noise.
>
> You can always make an empty tarball called
> texlive-collection-htmlxml-20170515.tar.xz or whatever, and use that for
> SRC_URI.

Good idea, thanks.  But it turns out that there's another problem: 
cygport won't actually create an empty binary tarball in this situation.

The relevant code is in pkg_pkg.cygpart around lines 149--163, 
especially this part:

		elif (( pkg_count == 1 ))
		then
			pkg_contents="*"
		else
			pkg_contents=

We get here if PKG_CONTENTS is unset or empty.  (There's actually no 
test to see if it's set but empty.)  In the situation under discussion, 
this results in pkg_contents="*" followed by a tar error.

Yaakov, shouldn't the user be allowed to explicitly set PKG_CONTENTS 
empty and have cygport honor that, at least for obsolete packages?

Ken

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list