Creating a Chocolatey Package For TexLive

Norbert Preining norbert at preining.info
Wed Sep 16 17:10:45 CEST 2020


Hi Naveen,

lots of questions, and it is late here in JST ..

> 1. What should be the Package id? And how many packages to create?
>   Chocolatey states this,
> > If the software is cross-platform, attempt to use the same id as the debian/rpm package(s) if possible.
>   So what are the packages I should create/what is the id for it? ID is something people use with chocolatey like below
> ```cmd
> choco install <id-here>
> ```

This is a decision you have to take. Depending on the distribution,
different packaging approaches can be done:
- split on TeX Live package level (Fedora, SuSE ?)
- split on TeX Live collection level (Debian and derivatives)
- don't split, ship all in one

I don't really understand your packaging efforts, but I think, since you
use install-tl, that splitting at collection level is the best way.
But even that doesn't work for you, or does it? I am not sure about how
multiple packages installing into the same directory are treated in
choco. (The files are the texlive-infra stuff that is installed in any
case when calling install-tl).

> 2. What should be the version? If I am right should it be 2020? How often it should change? I plan to include `install-tl.zip` inside the choco pack. So how often should I update it? And also the version?

In Debian I use
	YYYY.YYYYMMDD
where the first YYYY is the release number of TeX Live (2018, 2019,
2020), and the second in YYYYMMDD is the day I took the tlnet mirror.

SO I can have
	2020.20210214
as version number, since it is a TeX Live 2020 release, with tlnet
checkout on 2021-02-14.

> 3. What can be possibly the title name? I suggest `TexLive (Install)`.

"TeX Live Installer" sounds fine.

> 4. What should be the authors' fields? Possibly `TeX Live Developers` or should I include some names? The maximum allowed here is 1500 characters.

No specific names are needed IMNSHO, just put TeX Live Developers or TeX
Live Team into it.

> 5. What should be the Icon? Can I make a copy of this icon in my git repo where I maintain this package and hyperlink it?

You can use whatever icon you find. If you need help, I made some square
and rounded ones.

> 6. What should be the Copyright?

Cannot be stated trivially, since it is an agglomeration of thousands
of packages.

> 7. What is the License URL? Is this https://www.tug.org/texlive/copying.html?

Yes, that sounds reasonable.

> 8. What is the docs URL for this? Should it be installation Docs?

https://www.tug.org/texlive/doc.html

> 9. Where are the release notes located?

https://www.tug.org/texlive/doc/texlive-en/texlive-en.html#x1-700009

> 10. Where is the bug tracker URL? Is it the mailing list?

The mailing list.

> I plan to call the `install-tl` using `-no-gui` or `-text` mode and pass a profile. If we were to do a single package unlike Debian, I will allow the user to select the type of installation using a package parameter. https://chocolatey.org/docs/helpers-get-package-parameters. What can be defaulted to install? Possibly full? 

Yes, I *strongly* suggest to install full TeX Live per default. This is
also the default we are using in our installer.

> Chocolatey doesn't allow packages to write in the Program Files directory so it will write to Tools Directory located usually in `C:\tools\texlive`. Is that any problem?

Not at all, in fact that is perfect. In general we recommend *NOT* using
directories with spaces in the full path (like "c:\Program Files" etc),
so c:\tools\texlive is definitely perfect. Maybe use
	c:\tools\texlive\YYYY/
?

>I will change it using the `TEXDIR` parameter in the profile. Anything else should I change in profile?

Nothing else is necessary. The default is c:\texlive on Windows, so if
you switch to c:\tools\texlive only the mentioned parameter needs to
be set.

> About Updating, what should be done before a user updates TexLive? Any directory to remove?

What kind of updates? There are a few options:
- updates using tlmgr
- updates using choco

> About Uninstalling TexLive, where is the uninstall script located? (Sorry for repeatedly asking). Is the uninstall script written in the Registry? (If yes, I can get it easily using https://chocolatey.org/docs/helpers-get-uninstall-registry-key and also what should be the name to search? Possibly `texlive*`).

Why don't you ***read*** the answers Siep gave? She pointed at the
complete and correct location. Please use the archives.

> Usually, all the executables (exe files) will be shimmed see https://chocolatey.org/docs/features-shim should this be disabled?

No idea, please try it out. Our installer already adds the bin directory
to the PATH of the user or system (depending on install mode), though.
This is something you have to check.

> Also, should I need to create a shim for `tlmgr` https://chocolatey.org/docs/helpers-install-bin-file because it is a batch script right(This gets the least precedence in command prompt so possibly shimming to an exe file can solve that issue)?

Again, no idea. The .bat file does the magic of updating tlmgr when
	tlmgr update --self
is called. Not sure how this will be integrated with choc.

Lots of questions, I tried to answer as much as possible. Good luck!

Norbert

--
PREINING Norbert                              https://www.preining.info
Accelia Inc. + IFMGA ProGuide + TU Wien + JAIST + TeX Live + Debian Dev
GPG: 0x860CDC13   fp: F7D8 A928 26E3 16A1 9FA0 ACF0 6CAC A448 860C DC13


More information about the tex-live mailing list.