1
0
forked from pool/libxkbcommon
Files
libxkbcommon/libxkbcommon.changes
2025-08-08 21:43:51 +02:00

592 lines
25 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-------------------------------------------------------------------
Fri Aug 8 19:37:15 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.11.0
* New keymap text format, `XKB_KEYMAP_FORMAT_TEXT_V2` (not yet
frozen and considered a living standard).
* Added the new parameter `lockOnRelease` for the key action
`LockGroup()`.
* Added the new parameter `unlockOnPress` for the key modifier
action `SetMods()`, `LatchMods()` and `LockMods()`
* Added the new parameter `latchOnPress` for the key action
`LatchMods()`.
* Raised the layout count limit from 4 to 32. Requires using
`XKB_KEYMAP_FORMAT_TEXT_V2`.
* Virtual modifiers are now mapped to their_canonical encoding if
they are not mapped explicitly.
* Added support for the constants `Level<INDEX>` for any valid
level index.
-------------------------------------------------------------------
Wed May 21 19:27:50 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.10.0
* Changed Compose behavior so that sequences defined later always
override ones defined earlier, even if the new sequence is
shorter.
* Modifiers masks handling has been refactored to properly handle
virtual modifiers. Modifier masks are now always considered as
an opaque encoding of the modifiers state:
* 1. Modifiers masks should not be interpreted by other means
than the provided API. In particular, one should not assume
that modifiers masks always denote the modifiers indexes of the
keymap.
* 2. It enables using virtual modifiers with arbitrary mappings.
-------------------------------------------------------------------
Tue May 6 23:33:23 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.9.2
* Fixed empty compatibility interpretation statement not parsable
by X11s `xkbcomp`. This particularly affects Japanese layout
`jp` when used with Xwayland.
* Fixed empty compatibility interpretations map not parsable by
X11s `xkbcomp`.
* Fixed key type map entries with a mix of bound and unbound
modifiers not being ignored.
-------------------------------------------------------------------
Fri May 2 21:39:22 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.9.1
* X11: Fixed capitalization transformation not set properly,
resulting in some keys (e.g. arrows, Home, etc.) not working
when Caps Lock is on.
-------------------------------------------------------------------
Sat Apr 26 21:55:13 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.9.0
* keysyms can now be written as just Unicode strings, including
multi-keysyms.
* Added support for new `<none>`, `<some>` and `<any>` wildcard
syntax in rules files.
* Added support for a new escaping format for Unicode, `\u{NNNN}`.
-------------------------------------------------------------------
Wed Mar 12 16:30:46 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.8.1
* Fixed segfault due to invalid arithmetic to bring negative
layout indexes into range.
* The tools do not load the default RMLVO (rules, model,
layout, variant, options) values from the environment anymore.
-------------------------------------------------------------------
Tue Feb 4 22:05:54 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.8
* `NoSymbol` is now systematically dropped in multi-keysyms
levels.
* Added the upper case mapping ß → ẞ (`ssharp` → `U1E9E`). This
enable to type ẞ using CapsLock thanks to the internal
capitalization rules.
* Updated keysyms case mappings to cover full Unicode 16.0.
* Implemented the `GroupLatch` action, usually activated with
the keysym `ISO_Group_Latch`.
* Symbols: Added support for multiple actions per levels.
-------------------------------------------------------------------
Sat Mar 23 22:14:16 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.7
* Added early detection of invalid encodings and BOM for
keymaps, rules & Compose. Also added a hint that the expected
encoding must be UTF-8 compatible.
* Updated keysyms using latest xorgproto
(cd33097fc779f280925c6d6bbfbd5150f93ca5bc): For the sake of
compatibility, this reintroduces some deleted keysyms and
postpones the effective deprecation of others that had landed
in xkbcommon 1.6.0.
* Reverted removal of some XKB_KEYs and fixed inconsistencies in names.
Details see upstream changelog.
* ``xkbcli compile-compose``: added new CLI utility to test
Compose files.
* ``xkbcli interactive-evdev``: added a ``--verbose`` option.
* ``xkbcli interactive-x11``: added support for Compose.
* ``xkbcli interactive-wayland``: added support for Compose.
-------------------------------------------------------------------
Fri Jan 12 09:32:56 UTC 2024 - Pierre Le Marre <opensuse@wismill.eu>
- Add libxkbcommon-tools-bash-completions.
-------------------------------------------------------------------
Tue Jan 9 11:53:36 UTC 2024 - Marcus Meissner <meissner@suse.com>
- add libxkbregistry-devel to baselibs for use by wine-32bit. (bsc#1218640)
-------------------------------------------------------------------
Sun Dec 17 20:06:52 UTC 2023 - Tobias Klausmann <tobias.klausmann@freenet.de>
- dxvk need libxkbregistry0 for building -32bit variants, provide them.
-------------------------------------------------------------------
Mon Oct 9 02:55:17 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.6.0
* Remove keysyms: XKB_KEY_dead_lowline,
XKB_KEY_dead_aboveverticalline, XKB_KEY_dead_belowverticalline,
XKB_KEY_dead_longsolidusoverlay
* Add Compose iterator API to iterate the entries in a compose
table.
* Structured log messages with a message registry. There is an
ongoing work to assign unique identifiers to log messages and
add a corresponding error index documentation page.
* Add a new warning for numeric keysyms references in XKB files:
the preferred keysym reference form is its name or its Unicode
value, if relevant.
* Add the upper bound `XKB_KEYSYM_MAX` to check valid keysyms.
* Add a warning when loading a keymap using RMLVO with no layout
but with the variant set.
* Add support for ``modifier_map None { … }``. This feature is
missing compared to the X11 implementation. It allows to reset
the modifier map of a key.
-------------------------------------------------------------------
Mon Jan 2 23:38:34 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.5.0
* Fix crash in `xkbcli interactive-wayland` under a compositor
which supports new versions of the xdg-shell protocol.
* New API: XKB_CONTEXT_NO_SECURE_GETENV,
RXKB_CONTEXT_NO_SECURE_GETENV
-------------------------------------------------------------------
Sun May 22 00:09:05 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.4.1
* Fix compose sequence overriding (common prefix) not working
correctly. Regressed in 1.2.0.
* Remove various bogus currency sign (particulary Euro and
Korean Won) entries from the keysym <-> Unicode mappings.
They prevented the real keysyms/codepoints for these from
mapping correctly.
-------------------------------------------------------------------
Fri Feb 4 11:51:53 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.4.0
* In libxkbregistry, variants now inherit iso639, iso3166 and
brief from parent layout if omitted.
* In libxkbregistry, skip over invalid ISO-639 or ISO-3166
entries.
-------------------------------------------------------------------
Fri Sep 10 20:04:05 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.3.1
* In `xkbcli interactive-x11`, use the Esc keysym instead of
the Esc keycode for quitting.
* In `xkbcli how-to-type`, add `--keysym` argugment for how to
type a keysym instead of a Unicode codepoint.
* Fix a crash in `xkb_x11_keymap_new_from_device` error
handling given some invalid keymaps. Had regressed in 1.2.0.
-------------------------------------------------------------------
Sat May 1 21:36:45 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.3.0
* `xkbcli list` was changed to output YAML instead of a
custom format.
* Fix segmentation fault in case-insensitive
`xkb_keysym_from_name` for certain values like the empty
string.
-------------------------------------------------------------------
Wed Apr 14 09:16:40 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.2.1 [boo#1184688]
* Fix `xkb_x11_keymap_new_from_device()` failing when the
keymap contains key types with missing level names, like the
one used by the `numpad:mac` option in xkeyboard-config.
(Regressed in 1.2.0.)
-------------------------------------------------------------------
Sat Apr 3 12:58:03 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.2.0
* `xkb_x11_keymap_new_from_device()` is much faster. It now
performs only 2 roundtrips to the X server, instead of dozens
(in first-time calls).
* Case-sensitive `xkb_keysym_from_name()` is much faster.
* Keysym names of the form `0x12AB` and `U12AB` are parsed more
strictly.
* Compose files now have a size limit (65535 internal nodes).
* Compose table loading (`xkb_compose_table_new_from_locale()`
and similar) is much faster.
-------------------------------------------------------------------
Thu Mar 4 21:47:33 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.1.0
* Update keysym definitions to latest xorgproto. In particular,
this adds many special keysyms corresponding to Linux evdev
keycodes.
* New XKB_KEY_* definitions.
-------------------------------------------------------------------
Wed Jan 20 12:28:22 UTC 2021 - Dominique Leuenberger <dimstar@opensuse.org>
- Fix dependency of libxkbregistry-devel: the devel package must
require the library libxkbregistry0.
-------------------------------------------------------------------
Mon Nov 23 19:07:13 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.0.3
* Fix (hopefully) a segfault in xkb_x11_keymap_new_from_device()
in some unclear situation (bug introduced in 1.0.2).
* Fix keymaps created with xkb_x11_keymap_new_from_device() do
not have level names (bug introduced in 0.8.0).
-------------------------------------------------------------------
Fri Nov 20 19:36:21 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.0.2
* Fix a bug where a keysym that cannot be resolved in a keymap
gets compiled to a garbage keysym. Now it is set to
XKB_KEY_NoSymbol instead.
* Improve the speed of xkb_x11_keymap_new_from_device() on
repeated calls in the same xkb_context().
-------------------------------------------------------------------
Sat Sep 12 10:28:13 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.0.1
* Make the table output of `xkbcli how-to-type` aligned.
-------------------------------------------------------------------
Sun Sep 6 19:33:06 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
- Update to release 1.0.0
* Now it is possible to add custom layouts and options at the
system (/etc) and user (~/.config) level, at least when
libxkbcommon is in use.
* libxkbregistry is a C library that lists available XKB
models, layouts and variants for a given ruleset. This is a
separate library (.so/.pc files) and aimed at tools that
provide a listing of available keyboard layouts to the user.
* Add an `xkbcli` command-line utility.
-------------------------------------------------------------------
Sun Jan 19 00:48:54 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
- Update to release 0.10.0
* Fix quadratic complexity in the XKB file parser.
* Add $XDG_CONFIG_HOME/xkb to the default search path. If
$XDG_CONFIG_HOME is not set, $HOME/.config/xkb is used. If
$HOME is not set, the path is not added. The XDG path is
looked up before the existing default search path $HOME/.xkb.
* Add support for include statements in XKB rules files.
* Fix bug where the merge mode only applied to the first vmod
in a "virtual_modifiers" statement.
* Reject interpret modifier predicate with more than one value.
* Correctly handle capitalization of the ssharp keysym.
-------------------------------------------------------------------
Mon Oct 21 08:26:29 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Update to release 0.9.1
* Fix context creation failing when run in privileged processes
as defined by `secure_getenv(3)`, e.g. GDM.
-------------------------------------------------------------------
Sun Oct 20 15:08:58 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Update to release 0.9.0
* Move ~/.xkb to before XKB_CONFIG_ROOT. This enables the user
to have full control of the keymap definitions, instead of
only augmenting them.
-------------------------------------------------------------------
Fri Feb 22 21:58:27 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Update to new upstream release 0.8.4
* Only changes to the build procedure.
-------------------------------------------------------------------
Fri Feb 8 11:13:02 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Update to new upstream release 0.8.3
* New APIs: XKB_KEY_XF86MonBrightnessCycle,
XKB_KEY_XF86RotationLockToggle.
-------------------------------------------------------------------
Tue Aug 7 13:49:26 UTC 2018 - jengelh@inai.de
- Update to new upstream release 0.8.2 (boo#1105832)
* Fix a few NULL-dereferences, out-of-bounds access and undefined
behavior in the XKB text format parser.
* CVEs fixed: CVE-2018-15853, CVE-2018-15854, CVE-2018-15855,
CVE-2018-15856, CVE-2018-15857, CVE-2018-15858, CVE-2018-15859,
CVE-2018-15861, CVE-2018-15862, CVE-2018-15863, CVE-2018-15864
- run make check
-------------------------------------------------------------------
Fri Dec 15 20:21:18 UTC 2017 - jengelh@inai.de
- Update to new upstream release 0.8.0
* Added xkb_keysym_to_{upper,lower} to perform case-conversion
directly on keysyms. This is useful in some odd cases, but
working with the Unicode representations should be preferred
when possible.
* Added Unicode conversion rules for the signifblank and
permille keysyms.
* Fixed a bug in the parsing of XKB key type definitions where
the number of levels were determined by the number of level
*names*. Keymaps which omit level names were hence
miscompiled. This regressed in version 0.4.3. Keymaps from
xkeyboard-config were not affected since they don't omit
level names.
-------------------------------------------------------------------
Thu Oct 19 01:30:35 UTC 2017 - jayvdb@gmail.com
- Allow building x11 subpackage on any distribution
-------------------------------------------------------------------
Mon Aug 7 16:29:12 UTC 2017 - jengelh@inai.de
- Update to new upstream release 0.7.2
* Added new keysym definitions from xproto.
* New APIs: XKB_KEY_XF86Keyboard, XKB_KEY_XF86WWAN,
XKB_KEY_XF86RFKill, XKB_KEY_XF86AudioPreset.
-------------------------------------------------------------------
Wed Jan 18 21:43:43 UTC 2017 - jengelh@inai.de
- Update to new upstream release 0.7.1
* Fixed various reported problems when the current locale is
tr_TR.UTF-8.
-------------------------------------------------------------------
Fri Nov 11 19:27:17 UTC 2016 - jengelh@inai.de
- Update to new upstream release 0.7.0
* Added support for different "modes" of calculating consumed
modifiers. The existing mode, based on the XKB standard, has
proven to be unintuitive in various shortcut implementations.
* A new mode, based on the calculation used by the GTK toolkit,
is added. This mode is less eager to declare a modifier as
consumed.
-------------------------------------------------------------------
Fri Apr 8 01:24:14 UTC 2016 - zaitor@opensuse.org
- Update to version 0.6.1:
* Add LICENSE to distributed files in tarball releases.
* Minor typo fix in xkb_keymap_get_as_string() documentation.
- Changes from version 0.6.0:
* If the XKB_CONFIG_ROOT environment variable is set, it is used
as the XKB configuration root instead of the path determined at
build time.
* Tests and benchmarks now build correctly on OSX.
* An XKB keymap provides a name for each key it defines.
Traditionally these names are limited to at most 4 characters,
and are thus somewhat obscure, but might still be useful
(xkbcommon lifts the 4 character limit).
* The new functions xkb_keymap_key_get_name() and
xkb_keymap_key_by_name() can be used to get the name of a key
or find a key by name. Note that a key may have aliases.
* Documentation improvements.
* New API:
+ xkb_keymap_key_by_name().
+ xkb_keymap_key_get_name().
-------------------------------------------------------------------
Mon Nov 2 10:39:38 UTC 2015 - mlin@suse.com
- Requires xkeyboard-config, bsc#952403
* libxkbcommon should brings xkeyboard-config together always as
libxkbcommon does not distribute xkb data itself, and especially
requires xkeyboard-config for any rely on libxkbcommon in the
minimal system.
-------------------------------------------------------------------
Mon Nov 3 16:40:03 UTC 2014 - hrvoje.senjan@gmail.com
- Update to version 0.5.0:
* Added support for Compose/dead keys in a new module (included in
libxkbcommon). See the documentation or the
xkbcommon/xkbcommon-compose.h header file for more details.
* Improved and reordered some sections of the documentation.
* The doxygen HTML pages were made nicer to read.
* Most tests now run also on non-linux platforms.
* A warning is emitted by default about RMLVO values which are not
used during keymap compilation, which are most often a user
misconfiguration. For example, "terminate:ctrl_alt_backspace"
instead of "terminate:ctrl_alt_bksp".
* Added symbol versioning for libxkbcommon and libxkbcommon-x11.
Note: binaries compiled against this and future versions will not
be able to link against the previous versions of the library.
* Removed several compatablity symbols from the binary (the API
isn't affected). This affects binaries which:
1. Were compiled against a pre-stable (<0.2.0) version of
libxkbcommon, and
2. Are linked against the this or later version of libxkbcommon.
Such a scenario is likely to fail already.
* If Xvfb is not available, the x11comp test is now correctly
skipped instead of hanging.
* Benchmarks were moved to a separate bench/ directory.
* Build fixes from OpenBSD.
* Fixed a bug where key type entries such as "map[None] = Level2;"
were ignored.
* New API:
XKB_COMPOSE_*
xkb_compose_*
-------------------------------------------------------------------
Thu Sep 11 18:33:56 UTC 2014 - jengelh@inai.de
- Add commentary about upcoming symbol version support to
.spec file.
-------------------------------------------------------------------
Tue Sep 9 16:36:07 UTC 2014 - jengelh@inai.de
- Switch to library versioning as described in Shared Library
Packaging guidelines. This permits installation of multiple
libxkbcommons.
-------------------------------------------------------------------
Thu Aug 21 19:31:26 UTC 2014 - dimstar@opensuse.org
- Update to version 0.4.3:
+ Fixed a bug which caused xkb_x11_keymap_new_from_device() to
misrepresent modifiers for some keymaps.
https://github.com/xkbcommon/libxkbcommon/issues/9
+ Fixed a bug which caused xkb_x11_keymap_new_from_device() to
ignore XKB PrivateAction's.
+ Modifiers are now always fully resolved after
xkb_state_update_mask(). Previously the given state components
were used as-is, without considering virtual modifier mappings.
Note: this only affects non-standard uses of
xkb_state_update_mask().
+ Added a test for xkbcommon-x11, "x11comp". The test uses the
system's Xvfb server and xkbcomp. If they do not exist or fail,
the test is skipped.
+ Fixed memory leaks after parse errors in the XKB yacc parser.
+ The fix required changes which are currently incompatible with
byacc.
-------------------------------------------------------------------
Thu Jul 24 15:46:08 UTC 2014 - jengelh@inai.de
- Add symbol versioning to xkbcommon
-------------------------------------------------------------------
Wed May 21 12:28:41 UTC 2014 - hrvoje.senjan@gmail.com
- Update to new upstream release 0.4.2
* Fixed a bug where explicitly passing "--enable-x11" to ./configure
would in fact disable it (regressed in 0.4.1).
* Added @since version annotations to the API documentation for everything
introduced after the initial stable release (0.2.0).
* Added a section to the documentation about keysym transformations, and
clarified which functions perform a given transformation.
* XKB files which fail to compile during keymap construction can no longer
have any effect on the resulting keymap: changes are only applied when
the entire compilation succeeds.
Note: this was a minor correctness issue inherited from xkbcomp.
* Fix an out-of-bounds array access in src/x11/util.c:adopt_atoms()
error-handling code.
Note: it seems impossible to trigger in the current code since the input
size cannot exceed the required size.
- Add back -enable-x11 flag for 1315+
-------------------------------------------------------------------
Wed Apr 9 08:36:24 UTC 2014 - mlin@suse.com
- Add COPYING and NEWS to files list
-------------------------------------------------------------------
Tue Apr 8 06:02:33 UTC 2014 - mlin@suse.com
- Replace %suse_version >= 1320 to 1315 in order to build -x11 package
for SLE12
-------------------------------------------------------------------
Fri Apr 4 01:16:43 UTC 2014 - hrvoje.senjan@gmail.com
- Update to new upstream release 0.4.1
* Added two new functions, xkb_state_key_get_utf{8,32}(). They
combine the operations of xkb_state_key_get_syms() and
xkb_keysym_to_utf{8,32}(), and provide a nicer interface for it
(espcially for multiple-keysyms-per-level).
* The xkb_state_key_get_utf{8,32}() functions now apply Control
transformation: when the Control modifier is active, the string
is converted to an appropriate control character.
This matches the behavior of libX11's XLookupString(3), and
required by the XKB specification:
http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Control_Modifier
fdo#75892
* The consumed modifiers for a key are now calculated similarly
to libX11. The previous behavior caused a bug where Shift would
not cancel an active Caps Lock.
* Make xkbcommon-x11 work with the keymap reported by the XQuartz
X server. fdo#75798
* Reduce memory usage during keymap compilation some more.
* New API:
xkb_state_key_get_consumed_mods()
xkb_state_key_get_utf8()
xkb_state_key_get_utf32()
* Deprecated API:
XKB_MAP_COMPILE_PLACEHOLDER, XKB_MAP_NO_FLAGS
use XKB_KEYMAP_NO_FLAGS instead.
- Temporary ommit passing --enable-x11 flag, this release has a bug
that actually disables x11 if explicitly enabled (fixed upstream,
but used this approach instead of cherry-picking the patch, for
the sake of avoiding three new BuildRequires & autoreconf)
-------------------------------------------------------------------
Sat Mar 8 17:47:54 UTC 2014 - hrvoje.senjan@gmail.com
- Update to new upstream release 0.4.0
* Add a new add-on library, xkbcommon-x11, to support creating
keymaps with the XKB X11 protocol, by querying the X server
directly. See the xkbcommon/xkbcommon-x11.h header file for
more details. This library requires libxcb-xkb >= 1.10, and
is enabled by default. It can be disabled with the --disable-x11
configure switch. Distributions are encouraged to split the
necessary files for this library (libxkbcommon-x11.so,
xkbcommon-x11.pc, xkbcommon/xkbcommon-x11.h) to a separate
package, such that the main package does not depend on
X11 libraries.
* Fix the keysym <-> name lookup table to not require huge
amounts of relocations.
* Fix a bug in the keysym <-> name lookup, whereby lookup
might fail in some rare cases.
* Reduce memory usage during keymap compilation.
* New API:
New keysyms from xproto 7.0.25 (German T3 layout keysyms).
XKB_MOD_NAME_NUM for the usual NumLock modifier.
xkb_x11_* types and functions, XKB_X11_* constants.
- Add and build new libxkbcommon-x11-0 and libxkbcommon-x11-devel
packages for openSUSE 13.2 and newer
-------------------------------------------------------------------
Wed Apr 17 05:49:07 UTC 2013 - jengelh@inai.de
- Update to new upstream release 0.3.0
* This introduces the xkb_keymap_new_from_buffer API, relaxes
restrictions on the xkb_keymap_new_from_names API, introduces
support for setting default keymaps from the environment, and
includes several new bugfixes, as well as swathes of testing
improvements.
-------------------------------------------------------------------
Tue Oct 23 21:00:18 UTC 2012 - jengelh@inai.de
- Update to first tarball release 0.2.0
-------------------------------------------------------------------
Tue Sep 25 06:57:19 UTC 2012 - sndirsch@suse.com
- specfile cleanup
-------------------------------------------------------------------
Thu Nov 11 21:41:58 UTC 2010 - jengelh@medozas.de
- Initial package