Coder Social home page Coder Social logo

Comments (14)

tom-tan avatar tom-tan commented on June 12, 2024

I think it is not good solution for that.
How about changing Package-Requires header as follows:

;; Package-Requires: ((auctex "11.87"))

package.el will not install AUCTeX 11.86.
And if AUCTeX in ELPA will be updated to 11.87, we can install auctex-latexmk and auctex via list-packages without any changes in auctex-latexmk.

from auctex-latexmk.

swsnr avatar swsnr commented on June 12, 2024

@tom-tan Didn't you read what I wrote?! package.el does not know about AUCTeX if it is installed independently. It will always try to install AUCTeX from ELPA if it is already installed by another way.

Bumping the version is even worse hence, because package.el will now try to install a version that doesn't even exist. Effectively it renders this package uninstallable!

And don't be so sure that AUCTeX 11.87 will ever make it to ELPA. The current ELPA package is a manual port of AUCTeX 11.86 from autotools to package.el. This effort was never merged back to AUCTeX, and the developer who did it, left the project apparently, so no one knows how it was done, and whether it can easily be done again for the current release. And since even the current maintainers of AUCTeX don't fully understand the insanely complicated autotools build scripts of AUCTeX, it is highly unlikely that AUCTeX will again be ported to package.el.

Im my opinion, the ELPA package of AUCTeX is a lie, a false promise and a broken package. No one should recommend it, let alone depend on it.

from auctex-latexmk.

tom-tan avatar tom-tan commented on June 12, 2024

I know that package.el does not recognize packages out of the repositories.

I am not sure about your meaning of uninstallable.

  1. AUCTeX 11.87 is marked as "broken" and it will never be installed even if AUCTeX in the repository will be updated after a while.
  2. AUCTeX 11.87 is marked as "broken" and it is not installed. But after updating AUCTeX to 11.87, it will be installed .
  3. package.el becomes incomplete state and it will be broken.
  4. others

In my first comment, I expected package.el to work as 2. Is it not correct?

BTW, are there any critical issues about AUCTeX 11.86 in ELPA?
If it is only about the old release (not about some critical bugs), I will keep the source as is.

from auctex-latexmk.

swsnr avatar swsnr commented on June 12, 2024

@tom-tan I mean this by “uninstallable”:

M-x package-install RET auctex-latexmk
package-compute-transaction: Need package `auctex-11.87', but only 11.86 is available

package.el fails to find the required version of auctex and aborts the installation procedure. Consequently auctex-latexmk is not installed. Hence, if you bump the AUCTeX dependency to 11.87, no one will be able to install this package from MELPA.

There are no critical issues for 11.86, but it is really outdated and lacks support for many modern packages such as biblatex.

If you keep the dependency, package.el will install AUCTeX 11.86 regardless of whether AUCTeX 11.87 is already installed. In this case, two AUCTeX versions will be installed at the same time, which can cause all sorts of crazy bugs and severe breakage.

So, please, please, remove the dependency. For the sake of your users, pretend that AUCTeX was not available from ELPA.

from auctex-latexmk.

tom-tan avatar tom-tan commented on June 12, 2024

Thank you for your reply.
I understand the problem with updating Package-Requires header.

But, hmm...
There are some reasons not to remove AUCTeX from dependency.

  • The essential issue is package.el does not consider about user-installed packages, not AUCTeX in ELPA conflicts with user-installed AUCTeX. It is the issue of package.el, not individual packages.
  • We can easily treat the user-installed AUCTeX as a built-in package as follows. It prevents you from conflicting between two AUCTeX.
(add-to-list 'package--builtins
             (cons 'auctex [(11 87) nil "Integrated environment for *TeX*"]))

from auctex-latexmk.

swsnr avatar swsnr commented on June 12, 2024

@tom-tan This is not an issue of package.el. package.el cannot and should not care for side-step installations. No package manager does. Neither Apt nor Yum, Pacman, Homebrew, etc. track side-step installations. How are they supposed to even know about these?

If you want to blame someone, then blame AUCTeX for not updating or removing the ELPA package. But it's just silly to not fix a problem, which you can easily fix, just because you can blame someone else.

package--builtins is an internal variable (hence the two dashes), which gives no guarantees and is subject to change at any time. It is not meant to be changed from the outside. Fiddling with it is fragile, and risks breaking of package.el itself.

It doesn't work anyway in recent trunk, because package.el resets the contents of this variable when calling package-built-in-p:

ELISP> (add-to-list 'package--builtins
             (cons 'auctex [(11 87) nil "Integrated environment for *TeX*"]))
((auctex .
         [(11 87)
          nil "Integrated environment for *TeX*"]))

ELISP> package--builtins
((auctex .
         [(11 87)
          nil "Integrated environment for *TeX*"]))

ELISP> (package-built-in-p 'auctex)
nil
ELISP> package--builtins
((5x5 .
      [nil nil "simple little puzzle game"])
 (ada-mode .
           [nil nil "major-mode for editing Ada sources"])
…

from auctex-latexmk.

tom-tan avatar tom-tan commented on June 12, 2024

/** off topic start
For example, ABS in Arch Linux has a provides variable to integrate official and user-installed packages.
In APT case, we can make our own deb package. I don't know about Yum but I think there are some schemes for that.

However, package.el does not have such schemes.
**/

I will not accept this proposal.
Even if a package provides old version, we will not propose to break a dependency of the repository
The things we need to do first is to propose to the maintainers of the repository that it should be removed or updated.
Could you propose it to ELPA team?

from auctex-latexmk.

swsnr avatar swsnr commented on June 12, 2024

@tom-tan Uhm, yeah, I can make my own fake AUCTeX package.el package, too… it's quite easy actually, I'd just need to create an empty auctex.el file with proper headers and run it through package-install-file. But that's not the point.

The point is, that package.el doesn't do that for me (even in Arch I'd need to write a PKGBUILD). It's an ok solution for corner cases, but a bad way to install a package generally. However, there is currently no other way to use your package with AUCTeX 11.87, because it insists on a proper AUCTeX dependency.

I did talk with the AUCTeX maintainers. You may safely assume that what I wrote in my second comment was not just made up, but my own experience with the sorry state of AUCTeX packaging.

About nine months ago, I asked on the AUCTeX mailing list whether a new release including certain biblatex patches could be published, only to realize that the current AUCTeX maintainer didn't even know how to do a regular Tarball release, let alone an ELPA release. However, he found out some days later, and released 11.87. Initially, the release was automatically pushed to ELPA, but reverted soon after, because it was severely broken. I asked whether AUCTeX 11.86 could be removed than, to avoid confusion. The AUCTeX maintainer refused, saying both are fine.

As a consequence of my bad experiences, I implemented CVS support in MELPA in order to package AUCTeX in this repository, but after days of digging through the arcane autotools build system of AUCTeX I eventually gave up. @gvol tried, too, but also gave up.

In all this, I learned that AUCTeX has an insanely complicated, arcane and convoluted Autotools build system, whose central parts might just likely date back to 1995 or so. I learned that even the current AUCTeX maintainer does not understand this build system. Eventually I came to the conclusion that AUCTeX is never going to be packaged on ELPA, unless some great hero steps up to dig into 20 years old sources to fix the AUCTeX build system.

I also learned, that the AUCTeX community does not actually care for releases and ELPA packages, which is totally unsurprising given the lack of releases and ELPA maintenance. Everyone just uses distribution packages (e.g. Debian or Ubuntu packages), or builds CVS/Git checkouts manually.

Given all this, please, please, please, please just remove this stupid dependency. Yes, it is the right way in theory, but please don't make dogma of this. Please accept that it is a bad idea in practice, and that no AUCTeX user actually cares for ELPA packages. Please, please, for the sake of your users, be pragmatic.

No harm is done by removing this dependency. You can easily add it again if AUCTeX is ever properly released to ELPA. But right now it isn't, and the dependency just stands in the way.

Please, please, remove it.

from auctex-latexmk.

tom-tan avatar tom-tan commented on June 12, 2024

OK. Now I remove AUCTeX from the dependency.
If the latest AUCTeX is supported in a repository for package.el, I will re-add it to Package-Requires header.

Thank you for your report and information about AUCTeX!

from auctex-latexmk.

swsnr avatar swsnr commented on June 12, 2024

@tom-tan Thank you.

from auctex-latexmk.

swsnr avatar swsnr commented on June 12, 2024

@tom-tan I am picking this issue up again to notify you that GNU ELPA now contains AUCTeX 11.87.

from auctex-latexmk.

tom-tan avatar tom-tan commented on June 12, 2024

@lunaryorn Thank you for the information.
I will update the dependency.

from auctex-latexmk.

tom-tan avatar tom-tan commented on June 12, 2024

done!

from auctex-latexmk.

swsnr avatar swsnr commented on June 12, 2024

Thank you, too, for your quick response, and for your great work on this
package!
Am 02.10.2013 21:35 schrieb "tom tan" [email protected]:

done!


Reply to this email directly or view it on GitHubhttps://github.com//issues/2#issuecomment-25569720
.

from auctex-latexmk.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.