Bug: local.conf - Release build using 'undefine DEBUG' errors
#102
Closed
opened 3 months ago by heck
·
9 comments
gitea-102
positron/nkls-fix-RC26
gitea-149
gitea-148
master
nkls-fix-RC26
positron/dvn/ci-refactor2023
nkls_mixnet
gitea-140
gitea-91
gitea-136
pepmime
Release_2.1
unexpire-test-keys
gitea-96
gitea-120--2.x
gitea-116--2.x
gitea-121
gitea-118--3.x
gitea-113
gitea-117
foo
gitea-116
heck/tmpbugfix
gitea-100
gitea-104
gitea-90
echo-rate-limit
gitea-105
Release_2.1--with-sequoia-openpgp/v1.13.0-probably-all-wrong
invalid-upgdade
allow-empty-username
gitea-102
gitea-99
doxygen-3.x
gitea-83-84--v3
gitea-83-84--v2
gitea-83-84--v3--old-and-probably-useless
backup-before-using-REQUIRE
some-RCs-from-3.x--3.2.0-RC8-to-3.2.0-RC10
newsequoia2022--bk-2022-10-12
log-scratch
mscgen
ENGINE-1006-for-engine-v2
sqlite-cleanup
ENGINE-1006-for-engine-v2-rebasing--backup-before-cleaning-2022-08-10
ENGINE-999
ENGINE-1006-for-engine-v3--bk-before-rebasing
ENGINE-1006-for-engine-v3
ENGINE-1001--2.x
ENGINE-1001--3.x
ENGINE-1002--2.x
ENGINE-1002--3.x
positron/tka-scratch
positron/ENGINE-899
2.1-doxygen-docs
ENGINE-995
big-rewrite
migration-debugging
2.1-fix-two-lines-patch-only
ENGINE-996
QA-180
ENGINE-900
positron-temporary-for-heck-2022-01-12-a
ENGINE-989
ENGINE-979-for-engine-v2
ENGINE-979-for-engine-v3
ENGINE-984
ENGINE-930
ENGINE-959
ENGINE-959-new-part-to-be-pushed-to-the-old-branch
ENGINE-975
ENGINE-969
ENGINE-971
ENGINE-969--almost-certainly-wrongly-named-and-useless--to-be-removed
ENGINE-974
ENGINE-972
ENGINE-968
ENGINE-619
lucasaiu/WIP-ENGINE-968
ENGINE-967
lucasaiu/test
ENGINE-964
ENGINE-956
lucasaiu/message-struct-change
ENGINE-961
ENGINE-962
lucasaiu/rating-field
Release_3.1
ENGINE-958
ENGINE-847
ENGINE-558
ENGINE-957
ENGINE-955
ENGINE-848
ENGINE-570
ENGINE-953
ENGINE-954
ENGINE-899
ENGINE-898
2.1_audit_refresh
doxygen_doc
generate_api
neal/sequoia-1.1
ENGINE-878
ENGINE-606
ENGINE-820
MACOSINST-33
MACOSINST-26
ENGINE-868
ENGINE-814
ENGINE-864
mime-integrate
trustsync
test-README.md
sync
pEpMIME_windows
pEpMIME
nuanced_return_codes
key-manipulation-tests
fpr-format-check
extra_keys_add
elevated_attachments
doc_update_sequoia
doxygen-key-id
b0rken_crypto
audit_branch
add_key_notification
Release_2.1.0
ENGINE-871
ENGINE-872
ENGINE-641
v3.2.0-RC27
v3.2.0-RC26
v3.2.0-RC25
v3.2.0-RC24
v2.1.72
v3.2.0-RC23
v3.2.0-RC22
v3.2.0-RC21
v2.1.71
v2.1.70
v2.1.69
v3.2.0-RC20
v3.2.0-RC19
v3.2.0-RC18
v3.2.0-RC17
v3.2.0-RC16
v3.2.0-RC15
v3.2.0-RC14
v2.1.68
v3.2.0-RC13
v2.1.67
v3.2.0-RC12
v2.1.66
v2.1.65
v2.1.65-RC1
v3.2.0-RC11
gitea-86
v3.2.0-RC10
Release_3.2.0-RC9
3.2.0-RC8
Release_2.1.64
Release_2.1.63
Release_2.1.62
Release_2.1.61
Release_2.1.60
Release_2.1.59
Release_2.1.58
Release_2.1.57
Release_2.1.56
Release_2.1.55
Release_2.1.54
Release_3.2.0-RC7
Release_2.1.52
Release_2.1.51-RC6
Release_2.1.51-RC5
Release_2.1.51-RC4
Release_2.1.51-RC3
Release_2.1.51-RC2
Release_2.1.51-RC1
undo-the-incompatible-change-in-ENGINE-959
decrypt_message_2
after-incompatible-change-in-ENGINE-959
before-incompatible-change-in-ENGINE-959
Release_3.2.0-RC6
Release_3.2.0-RC5
Release_2.1.50
Release_3.1.10
Release_3.2.0-RC4
Release_3.2.0-RC3
Release_3.2.0-RC2
Release_3.2.0-RC1
Release_2.1.49
Release_2.1.48
Release_3.1.9
Release_3.1.8
Release_3.1.7
Release_3.1.6
Release_2.1.47
Release_2.1.46
Release_3.1.5
Release_2.1.45
Release_3.1.3
Release_2.1.44
Release_2.1.43
Release_3.1.2
Release_3.1.1
Release_2.1.42
Release_3.1.0
Release_2.1.41
Release_2.1.40
archive/ENGINE-633
Release_2.1.39
Release_2.1.38
Release_2.1.37
0.7
0.7.0
0.8.0
0.9.0_release
1.3.0-RC-default
1.3.0-RC-sync
2.0.0-RC
2.0.1_target
2.1.0_target
3.2.0-RC14
ENGINE-323_fixed
ENGINE-864
Last_commit_in_old_default_branch_-_branch_now_moves_to_Release_1_branch_deprecated._Goal_is_to_move_postrelease_to_default_and_continue_with_new_release/branching_rules_
M1.0_current
Patch_release_1.0.442
Release_0.0.1
Release_1.0.441
Release_1.1.0
Release_1.1.1
Release_1.1.2
Release_1.2.0
Release_2.0.0
Release_2.0.1
Release_2.0.2
Release_2.0.3
Release_2.0.4
Release_2.0.5
Release_2.0.6
Release_2.1.0
Release_2.1.0-RC0
Release_2.1.0-RC1
Release_2.1.0-RC10
Release_2.1.0-RC11
Release_2.1.0-RC12
Release_2.1.0-RC13
Release_2.1.0-RC14
Release_2.1.0-RC15
Release_2.1.0-RC16
Release_2.1.0-RC17
Release_2.1.0-RC18
Release_2.1.0-RC19
Release_2.1.0-RC2
Release_2.1.0-RC20
Release_2.1.0-RC21
Release_2.1.0-RC22
Release_2.1.0-RC23
Release_2.1.0-RC24
Release_2.1.0-RC25
Release_2.1.0-RC26
Release_2.1.0-RC27
Release_2.1.0-RC28
Release_2.1.0-RC29
Release_2.1.0-RC3
Release_2.1.0-RC30
Release_2.1.0-RC31
Release_2.1.0-RC32
Release_2.1.0-RC33
Release_2.1.0-RC34
Release_2.1.0-RC35
Release_2.1.0-RC36
Release_2.1.0-RC37
Release_2.1.0-RC38
Release_2.1.0-RC39
Release_2.1.0-RC4
Release_2.1.0-RC5
Release_2.1.0-RC6
Release_2.1.0-RC7
Release_2.1.0-RC8
Release_2.1.0-RC9
Release_2.1.0-final
Release_2.1.1
Release_2.1.10
Release_2.1.11
Release_2.1.12
Release_2.1.13
Release_2.1.14
Release_2.1.15
Release_2.1.16
Release_2.1.17
Release_2.1.18
Release_2.1.19
Release_2.1.2
Release_2.1.20
Release_2.1.21
Release_2.1.22
Release_2.1.23
Release_2.1.24
Release_2.1.25
Release_2.1.26
Release_2.1.27
Release_2.1.28
Release_2.1.29
Release_2.1.3
Release_2.1.30
Release_2.1.31
Release_2.1.32
Release_2.1.33
Release_2.1.34
Release_2.1.35
Release_2.1.36
Release_2.1.4
Release_2.1.5
Release_2.1.6
Release_2.1.7
Release_2.1.8
Release_2.1.9
Release_2.2.0-RC0
Release_3.0.0
Release_3.0.1
Release_3.0.10
Release_3.0.11
Release_3.0.2
Release_3.0.3
Release_3.0.4
Release_3.0.5
Release_3.0.6
Release_3.0.7
Release_3.0.8
Release_3.0.9
Release_3.1.4
Release_zOS_0.1
Restarting_default_from_postrelease
Revived_default_branch._Close_postrelease_and_work_here._sync_is_2.0_branch_
TEST-ENGINE-820
TEST_ENGINE-814_1
add
archive/2.0.5_p4a_log_test
archive/2028_fix
archive/633-up-id-refactor
archive/AllGroupDevicesShowHandshake
archive/ENGINE-1
archive/ENGINE-105
archive/ENGINE-107
archive/ENGINE-109
archive/ENGINE-112
archive/ENGINE-118
archive/ENGINE-128
archive/ENGINE-129
archive/ENGINE-133
archive/ENGINE-135
archive/ENGINE-137
archive/ENGINE-139
archive/ENGINE-140
archive/ENGINE-140-reloaded
archive/ENGINE-140_exclude_identity_from_sync
archive/ENGINE-142
archive/ENGINE-152
archive/ENGINE-155
archive/ENGINE-157
archive/ENGINE-168
archive/ENGINE-171
archive/ENGINE-172
archive/ENGINE-173
archive/ENGINE-174
archive/ENGINE-178
archive/ENGINE-179
archive/ENGINE-180
archive/ENGINE-183
archive/ENGINE-187
archive/ENGINE-188
archive/ENGINE-189
archive/ENGINE-198
archive/ENGINE-199
archive/ENGINE-204
archive/ENGINE-207
archive/ENGINE-207-1
archive/ENGINE-209
archive/ENGINE-214
archive/ENGINE-215
archive/ENGINE-217
archive/ENGINE-226
archive/ENGINE-228
archive/ENGINE-229
archive/ENGINE-233
archive/ENGINE-237
archive/ENGINE-238
archive/ENGINE-247
archive/ENGINE-250
archive/ENGINE-251
archive/ENGINE-254
archive/ENGINE-255
archive/ENGINE-259
archive/ENGINE-261
archive/ENGINE-262
archive/ENGINE-265
archive/ENGINE-27
archive/ENGINE-275
archive/ENGINE-282
archive/ENGINE-286
archive/ENGINE-287
archive/ENGINE-288
archive/ENGINE-289
archive/ENGINE-290
archive/ENGINE-293
archive/ENGINE-294
archive/ENGINE-298
archive/ENGINE-3
archive/ENGINE-305
archive/ENGINE-308
archive/ENGINE-320
archive/ENGINE-320-lr1
archive/ENGINE-321
archive/ENGINE-322
archive/ENGINE-325
archive/ENGINE-329
archive/ENGINE-332
archive/ENGINE-339
archive/ENGINE-352
archive/ENGINE-358
archive/ENGINE-398
archive/ENGINE-40
archive/ENGINE-400
archive/ENGINE-402
archive/ENGINE-407
archive/ENGINE-420
archive/ENGINE-422
archive/ENGINE-423
archive/ENGINE-425
archive/ENGINE-427
archive/ENGINE-430
archive/ENGINE-434
archive/ENGINE-440
archive/ENGINE-442
archive/ENGINE-448
archive/ENGINE-450
archive/ENGINE-450-MARK-II
archive/ENGINE-451
archive/ENGINE-454
archive/ENGINE-455
archive/ENGINE-459
archive/ENGINE-463
archive/ENGINE-466
archive/ENGINE-467
archive/ENGINE-472
archive/ENGINE-473
archive/ENGINE-474
archive/ENGINE-479
archive/ENGINE-479_low_level
archive/ENGINE-487
archive/ENGINE-507
archive/ENGINE-510
archive/ENGINE-514
archive/ENGINE-524
archive/ENGINE-531
archive/ENGINE-536
archive/ENGINE-540
archive/ENGINE-544
archive/ENGINE-550
archive/ENGINE-551
archive/ENGINE-552
archive/ENGINE-553
archive/ENGINE-559
archive/ENGINE-571
archive/ENGINE-581
archive/ENGINE-596
archive/ENGINE-600
archive/ENGINE-602
archive/ENGINE-606
archive/ENGINE-614
archive/ENGINE-630
archive/ENGINE-638
archive/ENGINE-639
archive/ENGINE-647
archive/ENGINE-649
archive/ENGINE-654
archive/ENGINE-655
archive/ENGINE-659-gpg
archive/ENGINE-681
archive/ENGINE-703
archive/ENGINE-720
archive/ENGINE-73
archive/ENGINE-736
archive/ENGINE-74
archive/ENGINE-746
archive/ENGINE-750
archive/ENGINE-751
archive/ENGINE-757
archive/ENGINE-764
archive/ENGINE-767
archive/ENGINE-780
archive/ENGINE-780-take2
archive/ENGINE-781
archive/ENGINE-79
archive/ENGINE-812
archive/ENGINE-822-sql-refactor
archive/ENGINE-835
archive/ENGINE-84
archive/ENGINE-864_old
archive/ENGINE-866
archive/ENGINE-870
archive/ENGINE-877
archive/ENGINE-883
archive/ENGINE-9
archive/ENGINE-9-1
archive/ENGINE-92
archive/ENGINE-95
archive/ENGINE-96
archive/ENGINE-98
archive/ENGINE_314
archive/GroupMerge
archive/IOS-1351
archive/IOS-1482
archive/IOS-1484
archive/IOS-1576
archive/IOS-1784
archive/IOS-1942
archive/IOS-2327
archive/IOS-2414
archive/IOS-506
archive/IOS-BUILD_NDEBUG_FIX
archive/IOSAD-101
archive/IOSAD-103
archive/IOSAD-111
archive/IOSAD-120
archive/IOSAD-161
archive/IOSAD-163
archive/IOSAD-182
archive/IOSAD-186
archive/JIRA_smart_commit_test_branch
archive/JNI-21
archive/JNI-26
archive/KeySyncWaitForAccept
archive/NETPGP-18
archive/Release_1_branch_deprecated
archive/Release_2.1.0
archive/Release_3.0
archive/Xcode-sync-session
archive/Xcode11
archive/android-stuff
archive/async_key_management
archive/beacon_test
archive/changeset_add
archive/database_change_branch
archive/debian_default_test
archive/default-1
archive/default-2
archive/default-3
archive/delete_key
archive/diphoton_M1
archive/el_presidente
archive/email_comparison
archive/enigmail-color-tests
archive/enigmail_tests_pre_revision_2535
archive/fdik_sync
archive/fixing_revoke
archive/gen_sample
archive/gnupg-2.1
archive/google-ENGINE-325-testing
archive/googletest
archive/gpgme-1.9.0
archive/gpgme_passphrase_cb
archive/grind_and_cleanup
archive/group_key_reset
archive/import_key_2.1
archive/import_own_key
archive/import_priv_keys_fix
archive/install_headers
archive/key_reset_get_revocations
archive/keysync
archive/keysync-windows
archive/krista-local-7-Jan-2020
archive/krista-netpgp-sync
archive/krista-temp
archive/krista_local_windows
archive/krista_temp
archive/krista_tmp_sequoia_upgrade
archive/local_cmocka
archive/local_cpptest
archive/maintain
archive/make-cleanup
archive/merge_ll_sign_only
archive/message-2.0
archive/mistrust_fixes
archive/neal-sequoia-update-staging
archive/neal/tpk-cache
archive/notifyHandshake
archive/null_size_attachment
archive/outlook_mime_support
archive/peg-mime
archive/postrelease
archive/preview_rating
archive/ratings
archive/reduce
archive/remove_gpg
archive/rok-mac
archive/roker-linux
archive/sender-fpr-and-friends
archive/sender-fpr-checks
archive/sequoia
archive/sequoia_windows
archive/short_term_is_own_key_branch
archive/signature_test
archive/spinlock_remove
archive/strl-imp
archive/sync-test-dev
archive/sync_and_key_reset
archive/sync_test_refactor
archive/test-huss-hypothesis-42
archive/test_diphoton
archive/thomas_timing_tests
archive/tracing_for_thomas
archive/tunneling
audit_update_from_sync
decode-encode-API-change
for_Outlook-1.1.10
last-old-mime-api-version
last_usable_message_format_commit
list
no_support_provided_from_message_2.0_on_this_branch._Please_use_branch_diphoton_M1
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
Milestone
Set milestone
Clear milestone
No items
No Milestone
Assignees
Assign users
Clear assignees
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Depends on
#99 Build: Document and reflect build options DEBUG / MAINTAINER / RELEASE in local.conf
pEp.foundation/pEpEngine
Reference: pEp.foundation/pEpEngine#102
Reference in new issue
There is no content yet.
Delete Branch '%!s(<nil>)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
Affected version:
4d677e1d6e
Env: GNU Make dev build / macOS
Description
i am trying to build the engine using 2 scenarios:
local.conf
that used to be workingScenario 1
my existing
local.conf
Scenario 2
added line from
local.conf.example
to get Release build.undefine DEBUG
Observed Behaviour
Scenario 1
Scenario 2
local.conf:10: *** missing separator. Stop.
Expected Behaviour
Scenario 1
I am not sure if the aim is to be backwards compatible with existing
local.conf
in the wild. So, can you please comment on that and provide an upgrade path if not.Scenario 2
I expect this work and result in a Release build.
@positron can you please comment on
"Expected Behaviour Scenario 1"
@positron i updated and i am now using
results:
I expect to get a release build that only contains logging for critical messages
The current solution uses GNU make's undefine directive, introduced in GNU make version 3.82 (28 Jul 2010).
This seems old enough but @heck is living proof that some systems are still using older versions, in his case 3.81.
Copied from IRC :
the point is that defining to empty and undefining are different things. I do not even like this mechanism, but it was already there in Makefile.conf
The macro "starts" defined, and we can undefine it
undefine has been introduced in Version 3.82 (28 Jul 2010)
If you agree we can change the use of DEBUG and accept an empty definition as equivalent to undefined. In the Engine I can easily do that. Do we want to be completely consistent across different repos?
I think all
local.conf
variables should be optional and have a good default.So, the absence of a possible variable in
local.conf
never breaks the build process but just has the effect of the default value for it.In other words, a non-existing or empty
local.conf
build with all options set to default@heck as for the toolchain dependencies, the older the more compatible it is.
But, i think this is totally up to engine maintainer to define that. I will just follow.
copied from IRC:
'ifeq($(DEBUG),)' is what i am familiar with
In the process of fixing #87 I found several problems, now solved. It is visible in the master git history, even if probably not so interesting
heck: So you like ifeq. Good for me. But let us make it clear that ifdef DEBUG will no longer behave in the same way
[18:01]
I will add a comment to that effect
ERC>
[18:02] < positron> I wonder if other people's local.conf could break.
[18:02] < positron> I would say no
[18:03] < heck> IMO, its fine to break exisiting local.conf syntax/semantics as long as we deliver a direct replacement and an upgrade path
[18:03] < positron> Makefile.conf will change incompatibly, but that is only handled by us / me
[18:03] < positron> Okay then
[18:03] < heck> yes\
Fixed and merged into master.
@positron thanks thousand! works like a charm now.