Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setup Debian packaging #252

Closed
toupeira opened this issue Sep 16, 2015 · 29 comments
Closed

Setup Debian packaging #252

toupeira opened this issue Sep 16, 2015 · 29 comments

Comments

@toupeira
Copy link
Contributor

Last week I felt whimsical and released a preliminary 2.0-rc1 release of Hamster, along with a very basic Debian package built with checkinstall. So now I'd like to get the ball rolling to get proper packaging of Hamster going again, at least for Debian/Ubuntu. Any help is appreciated since I only have limited experience, but I'd be curious to learn more about it.

@matthijskooijman previously offered his support, but that was almost a year ago so I can understand if priorities have changed ;-) Is there anything I can build on, or would it make more sense to start from scratch?

@tbaugis do you have any other contacts from previous maintainers of Debian/Ubuntu packages?

@toupeira
Copy link
Contributor Author

Oh and another question since I'm not too familiar with the Python ecosystem: would it make sense to switch from waf to another build system that could also help with the packaging process?

@sixtyfive
Copy link

Just a +1 here - it's a giant shame Debian still has hamster-applet. Especially since the PPA build installs fine but doesn't seem to run under Debian (which, granted, it's not supposed to in the first place). Still, proper Debian packaging would be mighty nice, so thank you for this!!!

@matthijskooijman
Copy link
Member

I'm still interested in Hamster (still using it every day), so I'll be happy to help out. It might be a while before I will find some time, though :-)

I'm not too familiar with Python packaging either, so not sure about waf or alternatives.

@matthijskooijman
Copy link
Member

I just upgraded from Debian stable to the latest Ubuntu where the legacy hamster no longer works, so I have some incentive in getting the new version working and uploaded to Debian. Not in time for Buster (already in freeze), but probably the next version. I'm looking at what's needed right now, also looking at the PPA packaging from Dylan McCall.

@ederag
Copy link
Collaborator

ederag commented Mar 16, 2019

If the old version (1.04) does not work at all, then the recommended course of action is to use the last release. The changes to the packaging are quite light, here is an example.
There are plans to migrate from waf to setuptools but don't hold your breath
(help would be very welcome).

@matthijskooijman
Copy link
Member

@ederag Thanks for the additional example. Wrt to waf vs setuptools, is there any ticket tracking this plan? AFAICS one problem with the current waf packaging is that waf is outdated and only runs on python2, so it should either be updated, or we should switch to e.g. setuptools (or perhaps one of these fancy new packaging tools that replace setuptools, such as poetry or flit using a pyproject.toml file rather that setup.py? Haven't looked at them closely, though).

Also: AFAIU, the main code supports python3 now (just waf is python2 only), but does it still support python2? Or should we just focus on python3-only now?

@ederag ederag mentioned this issue Mar 16, 2019
@ederag
Copy link
Collaborator

ederag commented Mar 16, 2019

Here is a new issue to discuss the waf replacement: #399.
Thanks for the pointers, feel free to advocate there if you think these are better solutions.

should we just focus on python3-only now?

Indeed, python 3.4+ specifically.

@ederag ederag mentioned this issue Apr 23, 2019
@Forage
Copy link
Contributor

Forage commented Apr 25, 2019

It's a shame to see all the pieces there but they are either slowly falling apart (Hamster legacy) or haven't been put together yet (Hamster rewrite).

Switching from waf to setuptools just to be able to build a package for the legacy code path seems like a big undertaking. If it had just been some mind-numbing task I would have been able to find the time for it, but digging into waf, setuptools and deb building isn't something trivial. Sorry.

As an intermediate step, would simply replacing the files installed by hamster-applet_2.91.3+git20120514.b9fec3e1-1ubuntu2_all.deb manually with the current legacy code do the trick?
That still leaves me without a Shell extension, since the up to date version + compatibility PRs for GNOME 3.32 is only for the rewrite, but better than nothing.

@brainwane
Copy link

Per #369 maybe https://github.com/projecthamster/hamster/wiki/Hamster-2.x-on-Xubuntu-18.04 could help @matthijskooijman? (Sorry if it doesn't.)

Debian buster (Debian 10) is now stable. The current testing distribution is "bullseye". So am I right to understand that, if someone packages Hamster for Debian, it'll go first to "unstable" (sid) and then to bullseye, but will not graduate to being available for buster, because buster is an LTS?

@matthijskooijman
Copy link
Member

Per #369 maybe projecthamster/hamster/wiki/Hamster-2.x-on-Xubuntu-18.04 could help @matthijskooijman? (Sorry if it doesn't.)

Nope, that's a bit of a hack that should not go into official packages. However, work by @ederag at #399 is going to help with that. Once he publishes that, I'm gonna go and have a stab at packaging it.

Debian buster (Debian 10) is now stable. The current testing distribution is "bullseye". So am I right to understand that, if someone packages Hamster for Debian, it'll go first to "unstable" (sid) and then to bullseye, but will not graduate to being available for buster, because buster is an LTS?

Correct (though "because it is an LTS" does not really mean anything, since all Debian releases are "LTS" in the sense that once out, they only get minor updates and bugfixes, not big updates (except for sid, which will always be unstable :-p).

If we get this packaged in the near future, it will end up in Bullseye only. However, it's likely that the Bullseye version can be installed in Buster, and if not, we could put a modified version in backports probably.

@myrdd
Copy link

myrdd commented Jul 11, 2019

will not graduate to being available for buster

except someone creates a package for backports. (as @matthijskooijman already mentioned)
https://backports.debian.org/Instructions/
https://backports.debian.org/Contribute/

it's likely that the Bullseye version can be installed in Buster

great! 👍

@ederag
Copy link
Collaborator

ederag commented Aug 25, 2019

Informations for packaging can be found in this comment.

v3.0 is almost there.
What would be the deadline to make it into ubuntu-19.10 ?

@GeraldJansen
Copy link
Contributor

Feature freeze August 22.

@ederag
Copy link
Collaborator

ederag commented Aug 25, 2019

Thanks Gerald. Too late to be in a hurry, good !

@ederag
Copy link
Collaborator

ederag commented Jan 23, 2020

Ubuntu feature freeze is feb 27th.
v3.0 could be "pre-released" early February (#516 should be the last large change).
What would be the deadline for a final release to get into ubuntu 20.04 ?
(taking into account the packager schedule)

@ederag ederag modified the milestones: hamster-gtk, v3.0 Jan 30, 2020
@ederag ederag pinned this issue Feb 2, 2020
@ederag
Copy link
Collaborator

ederag commented Feb 18, 2020

#565 will be merged tomorrow, it contains relevant information for packagers.

@ederag
Copy link
Collaborator

ederag commented Feb 18, 2020

v3.0-rc1 released, 8-9 days before ubuntu LTS freeze.
If all goes well, that's already v3.0.

@matthijskooijman
Copy link
Member

matthijskooijman commented Feb 18, 2020

FYI, I'm still motivated to make a Debian package for Hamster. However:

  • I'm a Debian maintainer, so my route would be to upload to Debian and let Ubuntu pick up the package automatically. Since the package needs to go through the NEW queue in Debian (which can take weeks) before being imported into Ubuntu (and automatic importing also stops on the 27th), this will probably not be so helpful right now.
  • In any case, I probably won't have time to get anything done before the 27th anyway...

I also noticed the Debian does not really like waf as a build system, since it contains packed up source files (which is a bit like a compiled binary). It can be used, but then I'll have to unpack waf before creating a source tarball (unless we do that in the source repo here already?).

@ederag
Copy link
Collaborator

ederag commented Feb 19, 2020

Thanks for the reply.

  • So someone else has to package specifically for ubuntu this time.
  • The dist still packs waf inside the tarball, so it is not helping.
    The waf version used is 2.0.17, pristine, so repack-waf (the first one in your link) should work.
    Doing that in the repo would be possible,
    but it's a bit close to the release; what are the implications ?
    Got to go, see you in 10 hours or so.

ederag added a commit to ederag/hamster that referenced this issue Feb 19, 2020
sed -i '/^#==>$/,$d' waf
This helps debian packaging
projecthamster#252 (comment)
and seems harmless.
Signatures are checked once at waf update.
https://waf.io/book/#_getting_the_waf_file
ederag added a commit to ederag/hamster that referenced this issue Feb 19, 2020
sed -i '/^#==>$/,$d' waf
This helps debian packaging
projecthamster#252 (comment)
and seems harmless.
Signatures are checked once at waf update.
https://waf.io/book/#_getting_the_waf_file
@ederag
Copy link
Collaborator

ederag commented Feb 19, 2020

It can be used, but then I'll have to unpack waf before creating a source tarball
(unless we do that in the source repo here already?).

@matthijskooijman Thanks a lot for the information. Fixed by #569 ?

@matthijskooijman
Copy link
Member

Looks good! Did not realize the unpacked files were in the repository already, so just stripping the binary stuff from waf indeed seems sufficient. Thanks!

@ederag ederag unpinned this issue Mar 1, 2020
@hstock
Copy link

hstock commented May 12, 2020

Anybody already started on debian packaging? We (me, some colleagues) might be able to help - depending on the need of our users at work. So please, if there are already some efforts, put a link here so we won't duplicate efforts.

@matthijskooijman
Copy link
Member

I have a start. Still needs some cleanup, but I shoudl be able to share something. Give me a few days to push this out somewhere.

@matthijskooijman
Copy link
Member

@hstock, I've pushed out my work so far here: https://salsa.debian.org/projecthamster-team/hamster-time-tracker, with my list of things still needed here: https://salsa.debian.org/projecthamster-team/hamster-time-tracker/-/issues/1

Do you have any experience with Debian packaging? Any of you a registered Debian Developer? I'm enlisted as a Debian Maintainer myself, meaning I'll have to ask a DD for an initial review and upload of a new package (but I can upload directly afterward the first version).

The packaging I did now uses git-buildpackage for building (in a chroot) and generating the changelog on release, are you familiar with that? You should also be able to just run dpkg-buildpackage to build without a chroot in your system directly, though.

Let me know what you think and if you have anything to contribute (we can continue on the Salsa issue, or here if you prefer).

@hstock
Copy link

hstock commented May 13, 2020

ok, I'll have a look. I am maintaining two packages on Debian but am neither a listed DD nor DM. We could also think about involving PAPT (Python Application Packaging Team).

I think it is best to continue on Salsa - leaving this comment here for future reference for other users.

@kiplingw
Copy link

Thanks @matthijskooijman for your efforts at Debianization. It would be great if we had a daily build PPA and recipe. I've done this a number of times before, but I'm less experienced with Python build environment tools than I am with native code and the Autotools.

@u451f
Copy link
Contributor

u451f commented Oct 20, 2020

Great people* have uploaded hamster-time-tracker to Debian: https://tracker.debian.org/pkg/hamster-time-tracker
Ubuntu automatically synchronizes from there to https://launchpad.net/ubuntu/+source/hamster-time-tracker
Packaging source files are available on Debian's Gitlab instance: https://salsa.debian.org/projecthamster-team/hamster-time-tracker

Maybe that issue can be closed?

  • eg @matthijskooijman who intervened on this issue above. And others: Raphaël Hertzog, Phillipp Huebner.

@u451f
Copy link
Contributor

u451f commented Oct 20, 2020

Thanks @matthijskooijman for your efforts at Debianization. It would be great if we had a daily build PPA and recipe.

What problem would a PPA solve? Having the package in Debian repositories gives stronger authentication than a PPA and via Debian backports also recent versions can be brought to people running Debian stable.

@matthijskooijman
Copy link
Member

Maybe that issue can be closed?

Yes!

What problem would a PPA solve?

It could make it easier to test the git version rather than just released versions, and/or make it easier to use newer hamster versions on older Ubuntu (and sometimes also Debian) releases. So I can see some merit in that, but I won't be coming around to setting this up anytime soon. If there's interest, maybe a separate issue could be created for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests