summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--debian/changelog246
-rw-r--r--debian/control50
-rw-r--r--debian/dirs1
-rw-r--r--debian/emacs-snapshot.sh8
-rwxr-xr-xdebian/install3
-rw-r--r--debian/links1
-rwxr-xr-xdebian/merge-snapshot47
-rwxr-xr-xdebian/postinst7
-rwxr-xr-xdebian/prerm7
-rwxr-xr-xdebian/rules23
-rw-r--r--debian/source/format1
-rw-r--r--debian/source/patch-header8
-rw-r--r--lisp/emacs-lisp/package.el1
-rw-r--r--lisp/startup.el7
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))