diff options
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | debian/changelog | 246 | ||||
-rw-r--r-- | debian/control | 50 | ||||
-rw-r--r-- | debian/dirs | 1 | ||||
-rw-r--r-- | debian/emacs-snapshot.sh | 8 | ||||
-rwxr-xr-x | debian/install | 3 | ||||
-rw-r--r-- | debian/links | 1 | ||||
-rwxr-xr-x | debian/merge-snapshot | 47 | ||||
-rwxr-xr-x | debian/postinst | 7 | ||||
-rwxr-xr-x | debian/prerm | 7 | ||||
-rwxr-xr-x | debian/rules | 23 | ||||
-rw-r--r-- | debian/source/format | 1 | ||||
-rw-r--r-- | debian/source/patch-header | 8 | ||||
-rw-r--r-- | lisp/emacs-lisp/package.el | 1 | ||||
-rw-r--r-- | lisp/startup.el | 7 |
15 files changed, 414 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore index 29c571a3dcb..903d4f7f97d 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,11 @@ # in Git 1.8.2 (March 2013). +# Debian packaging +config.guess +config.sub +debian/emacs-snapshot/ + # Personal customization. .dir-locals-2.el .no-advice-on-failure diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 00000000000..2b1389a16b4 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,246 @@ +emacs-snapshot (30.1~git20240103.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Thu, 11 Jan 2024 10:06:50 +0000 + +emacs-snapshot (30.1~git20230822.1) unstable; urgency=medium + + * Package git snapshot. + * Bump libgccjit dependency for gcc-13 in sid. + * Return to pgtk. + + -- Sean Whitton <spwhitton@spwhitton.name> Thu, 24 Aug 2023 08:39:56 +0100 + +emacs-snapshot (30.1~git20230703.1) unstable; urgency=medium + + * Package git snapshot. + * Temporarily switch pgtk->lucid due to Emacs bug#61719. + + -- Sean Whitton <spwhitton@spwhitton.name> Tue, 04 Jul 2023 22:20:56 +0100 + +emacs-snapshot (30.1~git20230415.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Sun, 16 Apr 2023 14:10:57 -0700 + +emacs-snapshot (30.1~git20230320.1) unstable; urgency=medium + + * Package git snapshot. + * d/merge-snapshot: Extract the major version only after merging. + + -- Sean Whitton <spwhitton@spwhitton.name> Tue, 21 Mar 2023 16:20:58 -0700 + +emacs-snapshot (29.1~git20230123.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Fri, 03 Feb 2023 16:11:11 -0700 + +emacs-snapshot (29.1~git20230103.1) unstable; urgency=medium + + * Package git snapshot. + * d/merge-snapshot: Find merge base with origin/emacs-29, not origin/master. + * d/merge-snapshot: Fix matching AC_INIT line in configure.ac. + * d/emacs-snapshot.sh: Add comment regarding update-alternatives. + + -- Sean Whitton <spwhitton@spwhitton.name> Tue, 03 Jan 2023 11:48:45 -0700 + +emacs-snapshot (29.1~git20221203.1) unstable; urgency=medium + + * Package git snapshot. + * d/merge-snapshot: don't hard code "origin/master" in merge messages. + We are presently merging from the emacs-29 branch. + + -- Sean Whitton <spwhitton@spwhitton.name> Sun, 04 Dec 2022 17:38:14 -0700 + +emacs-snapshot (29.1~git20221126.1) unstable; urgency=medium + + * Package git snapshot. + * Drop build-deps on imagemagick and libmagick++-6.q16-dev. + * (Explicitly) build-depend on libraries for optional features: + lib{cairo,harfbuzz,gmp,jansson,lcms2,sqlite3,tree-sitter,webp}-dev. + * d/merge-snapshot: check out the correct branch. + + -- Sean Whitton <spwhitton@spwhitton.name> Sat, 26 Nov 2022 17:21:41 -0700 + +emacs-snapshot (29.1~git20221121.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Mon, 21 Nov 2022 15:56:28 -0700 + +emacs-snapshot (29.1~git20221108.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Wed, 09 Nov 2022 16:08:02 -0700 + +emacs-snapshot (29.1~git20221015.1) unstable; urgency=medium + + * Package git snapshot. + * d/merge-snapshot: Extract major version number from configure.ac. + * d/merge-snapshot: Add comment explaining why we use 29.1 not 29.0.50. + * d/rules: Use new --with-native-compilation=aot configure option. + + -- Sean Whitton <spwhitton@spwhitton.name> Sun, 16 Oct 2022 17:59:07 -0700 + +emacs-snapshot (29.1~git20220912.1) unstable; urgency=medium + + * Package git snapshot. + * d/merge-snapshot: use 29.1, not 29, as base version number. + + -- Sean Whitton <spwhitton@spwhitton.name> Mon, 12 Sep 2022 18:28:45 -0700 + +emacs-snapshot (29~git20220905.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Wed, 07 Sep 2022 08:58:50 -0700 + +emacs-snapshot (29~git20220828.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Mon, 29 Aug 2022 15:22:01 -0700 + +emacs-snapshot (29~git20220816.1) unstable; urgency=medium + + * Package git snapshot. + * d/control: update b-d to libgccjit-12-dev for current sid. + + -- Sean Whitton <spwhitton@spwhitton.name> Wed, 17 Aug 2022 15:14:59 -0700 + +emacs-snapshot (29~git20220714.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Mon, 18 Jul 2022 16:18:38 -0700 + +emacs-snapshot (29~git20220630.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Thu, 30 Jun 2022 17:40:17 -0700 + +emacs-snapshot (29~git20220509.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Mon, 09 May 2022 22:05:59 -0700 + +emacs-snapshot (29~git20220505.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Fri, 06 May 2022 17:48:14 -0700 + +emacs-snapshot (29~git20220412.1) unstable; urgency=medium + + * Package git snapshot. + * d/merge-snapshot: use git-merge-base(1) to determine what to merge. + + -- Sean Whitton <spwhitton@spwhitton.name> Wed, 13 Apr 2022 17:53:27 -0700 + +emacs-snapshot (29~git20220317.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Thu, 17 Mar 2022 13:42:54 -0700 + +emacs-snapshot (29~git20220222.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Thu, 24 Feb 2022 13:16:15 -0700 + +emacs-snapshot (29~git20220124.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Mon, 24 Jan 2022 17:29:50 -0700 + +emacs-snapshot (29~git20220116.1) unstable; urgency=medium + + * Package git snapshot. + * Drop temporarily-included org-checklist.el and ol-notmuch.el. + + -- Sean Whitton <spwhitton@spwhitton.name> Sun, 16 Jan 2022 16:08:06 -0700 + +emacs-snapshot (29~git20220113.1) unstable; urgency=medium + + * Package git snapshot. + * d/rules: export NATIVE_FULL_AOT=1 to precompile all .eln files. + + -- Sean Whitton <spwhitton@spwhitton.name> Thu, 13 Jan 2022 15:06:02 -0700 + +emacs-snapshot (29~git20211218.1) unstable; urgency=medium + + * Package git snapshot. + * d/rules: switch --with-x-toolkit=lucid -> --with-pgtk. + * d/control: b-d on libgtk-3-dev. + * d/control: update b-d to libgccjit-11-dev for current sid. + + -- Sean Whitton <spwhitton@spwhitton.name> Sun, 19 Dec 2021 16:19:26 -0700 + +emacs-snapshot (28~git20210819.1) unstable; urgency=medium + + * Package git snapshot. + * d/rules: enable native-comp. + * d/control: b-d on libgccjit-10-dev. + + -- Sean Whitton <spwhitton@spwhitton.name> Sat, 21 Aug 2021 15:36:34 -0700 + +emacs-snapshot (28~git20210208.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Thu, 11 Feb 2021 18:51:35 -0700 + +emacs-snapshot (28~git20210131.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Mon, 01 Feb 2021 17:20:13 -0700 + +emacs-snapshot (28~git20210119.1) unstable; urgency=medium + + * Package git snapshot. + * Temporarily include org-checklist.el and ol-notmuch.el from Org-mode's + 9.4.4 release. + Debian's Org-mode package fails to bytecompile against Emacs 28 atm, + so rely on the version of Org bundled with Emacs, plus these two + contrib files. + + -- Sean Whitton <spwhitton@spwhitton.name> Thu, 21 Jan 2021 18:44:32 -0700 + +emacs-snapshot (28~git20201101.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Sat, 28 Nov 2020 19:13:41 -0700 + +emacs-snapshot (28~git20200906.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Sun, 13 Sep 2020 14:36:27 -0700 + +emacs-snapshot (28~git20200820.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Fri, 21 Aug 2020 15:37:38 -0700 + +emacs-snapshot (28~git20200806.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Thu, 06 Aug 2020 16:35:04 -0700 + +emacs-snapshot (28~git20200726.1) unstable; urgency=medium + + * Package git snapshot. + + -- Sean Whitton <spwhitton@spwhitton.name> Wed, 05 Aug 2020 16:42:49 -0700 diff --git a/debian/control b/debian/control new file mode 100644 index 00000000000..ec95994c5b2 --- /dev/null +++ b/debian/control @@ -0,0 +1,50 @@ +Source: emacs-snapshot +Section: editors +Priority: optional +Maintainer: Sean Whitton <spwhitton@spwhitton.name> +Build-Depends: + autoconf, + automake, + bsd-mailx | mailx, + dbus-x11, + debhelper-compat (= 12), + dh-exec, + gnupg-agent, + libacl1-dev, + libasound2-dev, + libcairo-dev, + libdbus-1-dev, + libgccjit-13-dev, + libgif-dev, + libgnutls28-dev, + libgmp-dev, + libgpm-dev, + libgtk-3-dev, + libharfbuzz-dev, + libjansson-dev, + libjpeg-dev, + liblcms2-dev, + liblockfile-dev, + libm17n-dev, + libncurses5-dev, + libotf-dev, + libpng-dev, + librsvg2-dev, + libselinux1-dev, + libsqlite3-dev, + libsystemd-dev, + libtiff-dev, + libtree-sitter-dev, + libwebp-dev, + libxaw7-dev, + libxml2-dev, + procps, + sharutils, + texinfo, + xaw3dg-dev, + zlib1g-dev, + +Package: emacs-snapshot +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Emacs git snapshot diff --git a/debian/dirs b/debian/dirs new file mode 100644 index 00000000000..057f2009f6c --- /dev/null +++ b/debian/dirs @@ -0,0 +1 @@ +/usr/share/emacs-snapshot/site-lisp/elpa diff --git a/debian/emacs-snapshot.sh b/debian/emacs-snapshot.sh new file mode 100644 index 00000000000..7893d16aa12 --- /dev/null +++ b/debian/emacs-snapshot.sh @@ -0,0 +1,8 @@ +# We install this script rather than using update-alternatives because +# whatever is providing /usr/bin/emacs is used to bytecompile files +# for Debian's packaged builds of Emacs, and there could be +# incompatibilities if emacs-snapshot builds were invoked to do that. + +if [ "`id -u`" -ne 0 ]; then + PATH=/opt/emacs-snapshot/bin:$PATH +fi diff --git a/debian/install b/debian/install new file mode 100755 index 00000000000..f54a4f644b4 --- /dev/null +++ b/debian/install @@ -0,0 +1,3 @@ +#!/usr/bin/dh-exec +debian/emacs-snapshot.sh => /etc/profile.d/emacs-snapshot.sh +debian/emacs-snapshot.sh => /etc/X11/Xsession.d/01emacs-snapshot diff --git a/debian/links b/debian/links new file mode 100644 index 00000000000..12be0815e45 --- /dev/null +++ b/debian/links @@ -0,0 +1 @@ +/opt/emacs-snapshot/bin/emacs /usr/bin/emacs-snapshot diff --git a/debian/merge-snapshot b/debian/merge-snapshot new file mode 100755 index 00000000000..78b71367d2a --- /dev/null +++ b/debian/merge-snapshot @@ -0,0 +1,47 @@ +#!/usr/bin/perl + +use 5.028; +use strict; +use warnings; + +use Cwd; +use File::Spec::Functions "catfile"; +use Git::Wrapper; + +my $git = Git::Wrapper->new(getcwd); + +($git->rev_parse({ abbrev_ref => 1 }, "HEAD"))[0] eq "athena/unstable" + or $git->checkout("athena/unstable"); + +my ($to_merge) = $git->merge_base("melete", "origin/master"); + +chomp(my $prev_version = `dpkg-parsechangelog -SVersion`); +chomp(my $prev_distn = `dpkg-parsechangelog -SDistribution`); + +my ($prev_date, $prev_rev) = ($prev_version =~ /git([0-9]+).([0-9]+)/); +my ($new_date) = $git->show("-s", { format => "%ci" }, $to_merge); +$new_date =~ /\A([0-9]{4})-([0-9]{2})-([0-9]{2})/ + or die "couldn't parse new commit committer date"; +$new_date = $1 . $2 . $3; +my $new_rev = $prev_date eq $new_date ? $prev_rev + 1 : 1; + +$git->merge({ + message => "Merge upstream Git snapshot into athena/unstable" + }, + $to_merge +); + +my $major_version; +open my $fh, "<", catfile $git->dir, "configure.ac"; +for (<$fh>) { + $major_version = $1, last + if /AC_INIT\(\[GNU Emacs\], \[([0-9]+)\.0\.[56]0\],/ +} +$major_version or die "couldn't extract devel major version number"; + +# We use .1 not .0.50 because that's what's conventional +# with Debian "~gitYYYYMMDD.N" git snapshot version numbers. +system "dch", "-v${major_version}.1~git${new_date}.${new_rev}", + $prev_distn eq "UNRELEASED" ? "" : "Package git snapshot."; +$git->add("debian/changelog"); +$git->commit({ message => "changelog" }); diff --git a/debian/postinst b/debian/postinst new file mode 100755 index 00000000000..6e1fde4934b --- /dev/null +++ b/debian/postinst @@ -0,0 +1,7 @@ +#!/bin/sh + +set -e + +/usr/lib/emacsen-common/emacs-install emacs-snapshot + +#DEBHELPER# diff --git a/debian/prerm b/debian/prerm new file mode 100755 index 00000000000..e72305bba57 --- /dev/null +++ b/debian/prerm @@ -0,0 +1,7 @@ +#!/bin/sh + +set -e + +/usr/lib/emacsen-common/emacs-remove emacs-snapshot + +#DEBHELPER# diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000000..0cb68380924 --- /dev/null +++ b/debian/rules @@ -0,0 +1,23 @@ +#!/usr/bin/make -f + +%: + dh $@ + +override_dh_update_autotools_config: + cp -a /usr/share/misc/config.guess /usr/share/misc/config.sub . + +override_dh_autoreconf: + ./autogen.sh + +override_dh_auto_configure: + ./configure --prefix=/opt/emacs-snapshot \ + --with-pgtk --with-native-compilation=aot + +override_dh_shlibdeps: + dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info + +# ensure .elc files are newer than their counterparts to prevent +# recursive load errors with jka-compr.el (see #803462) +override_dh_strip_nondeterminism: + +override_dh_auto_test: diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 00000000000..89ae9db8f88 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/debian/source/patch-header b/debian/source/patch-header new file mode 100644 index 00000000000..69436f69f1c --- /dev/null +++ b/debian/source/patch-header @@ -0,0 +1,8 @@ +The Debian packaging of emacs-snapshot is maintained in git, using the +merging workflow described in dgit-maint-merge(7). There isn't a +patch queue that can be represented as a quilt series. + +A detailed breakdown of the changes is available from their canonical +representation - git commits in the packaging repository. + +A single combined diff, containing all the changes, follows. diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index ab1731aeb54..3428b2375d7 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -313,6 +313,7 @@ packages in `package-directory-list'." (and (stringp f) (equal (file-name-nondirectory f) "site-lisp") (push (expand-file-name "elpa" f) result))) + (push "/usr/share/emacs-snapshot/site-lisp/elpa" result) (nreverse result)) "List of additional directories containing Emacs Lisp packages. Each directory name should be absolute. diff --git a/lisp/startup.el b/lisp/startup.el index 357a4154e4c..0f0195eba57 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -1489,7 +1489,12 @@ please check its value") ;; be loaded from site-run-file and wants to test if -q was given ;; should check init-file-user instead, since that is already set. ;; See cus-edit.el for an example. - (if site-run-file + (when site-run-file + (let ((file "/etc/emacs/site-start.d/00debian.el")) + ;; When the Emacs build invokes Emacs, such as in the + ;; Makefile rule for ${unidir}/emoji-labels.el, 00debian.el + ;; might not exist. Should be fine to just skip the load. + (when (file-readable-p file) (load file))) ;; Sites should not disable the startup screen. ;; Only individuals should disable the startup screen. (let ((inhibit-startup-screen inhibit-startup-screen)) |