Quantcast

Making a package obsolete

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Making a package obsolete

Ken Brown-6
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?

Ken
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Making a package obsolete

Jon TURNEY
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.

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Making a package obsolete

Ken Brown-6
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?

Ken

The package in question is texlive-collection-htmlxml, which no longer
exists upstream.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Making a package obsolete

Jon TURNEY
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="*" ?

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Making a package obsolete

Ken Brown-6
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.

Ken

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Making a package obsolete

Brian Inglis
On 2017-05-15 09:56, 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.

[intended for cygwin-apps?]

--
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Making a package obsolete

Ken Brown-6
In reply to this post by Ken Brown-6
[resending to cygwin-apps]

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


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Making a package obsolete

Jon TURNEY
In reply to this post by Brian Inglis
On 15/05/2017 17:12, Brian Inglis wrote:
> [intended for cygwin-apps?]

Doh! Yes.

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Making a package obsolete

szgyg-2
In reply to this post by Ken Brown-6
On Mon, May 15, 2017 at 12:20:46PM -0400, Ken Brown wrote:

> On 5/15/2017 11:56 AM, Jon Turney wrote:
>> 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?
I've used the attached files to create an empty, dependencies-only package.

szgyg

dependencies.cygport (275 bytes) Download Attachment
empty.tar.gz (170 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Making a package obsolete

Ken Brown-6
On 5/15/2017 12:51 PM, szgyg wrote:

> On Mon, May 15, 2017 at 12:20:46PM -0400, Ken Brown wrote:
>> On 5/15/2017 11:56 AM, Jon Turney wrote:
>>> 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?
>
> I've used the attached files to create an empty, dependencies-only package.

Yes, that works around the problem by not actually creating an empty
binary tarball.  But I still think cygport should allow the creation of
an empty binary tarball by a set but empty PKG_CONTENTS.

Ken
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Making a package obsolete

szgyg-2
On Mon, May 15, 2017 at 01:22:04PM -0400, Ken Brown wrote:
> On 5/15/2017 12:51 PM, szgyg wrote:
>> I've used the attached files to create an empty, dependencies-only package.
>
> Yes, that works around the problem by not actually creating an empty binary
> tarball.  But I still think cygport should allow the creation of an empty
> binary tarball by a set but empty PKG_CONTENTS.

Yeah, it creates a tarball with an empty usr/ directory. What I would
really like is a cygclass for empty packages.

szgyg
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Making a package obsolete

Achim Gratz
In reply to this post by Ken Brown-6
Ken Brown writes:
> Yes, that works around the problem by not actually creating an empty
> binary tarball.  But I still think cygport should allow the creation
> of an empty binary tarball by a set but empty PKG_CONTENTS.

What we should really do is make setup handle obsoletions instead of
this empty-install-package dance.


Regards,
Achim.
--
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptations for Waldorf Q V3.00R3 and Q+ V3.54R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Making a package obsolete

Ken Brown-6
In reply to this post by Ken Brown-6
On 5/15/2017 12:20 PM, Ken Brown wrote:

> 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?
The attached patch implements this, and not just for obsolete packages.

Ken


0001-Honor-the-PKG_CONTENTS-variable-if-it-is-set-even-if.patch (1K) Download Attachment
Loading...