Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_NSData", referenced from:
objc-class-ref in qmacfunctions.o
"_OBJC_CLASS_$_NSMutableArray", referenced from:
objc-class-ref in qmactoolbar.o
objc-class-ref in qmactoolbardelegate.o
ld: symbol(s) not found for architecture x86_64
FoundationDB uses Python at build time for some code generation.
However, it also has the official python bindings inside the source code
too, and the code for the Python bindings has some of it auto-generated
at compile time.
This made building python packages unattractive: we want to use the
source code generated from the FoundationDB build, but we don't want to
rebuild it. Previously we would override the 'python' input to the
FoundationDB module, but this meant we would do a complete rebuild, as
it was a necessary build time dependency, even though the resulting
generated code itself would not change. Furthermore, FoundationDB
versions < 6.0 don't properly support Python 3 *for the build system*,
though the bindings supported it, so that caused build failures. But the
first effect is the worst: it meant building separate python2 and
python3 packages implied two complete rebuilds of a single FoundationDB
version. This meant rather than 3 FDB builds, we'd do 3*N where N = the
number of major Python versions we support.
Finally, because we did not use pip to generate a wheel that we install
with metadata recorded for the installation, the FoundationDB python
package couldn't be used as an input to other setup.py-based packages:
there would be no recorded metadata in the dist-info folder which would
say this is the foundationdb package. This greatly limits its utility.
To fix all this, we do a few things:
- Apply some patches to fix the build system with Python 3.x for
older FoundationDB versions. (This is nice if end-users have
overridden the global Python version for some reason.)
- Move python directly into nativeBuildInputs, so it is only a
build time dependency.
- Take the python source code from the ./bindings directory and
tar it up use later after the build is done, so we get to keep
the generated code. This is the new 'pythonsrc' output from the
build. This code doesn't change based on whether or not the input
or resulting package is using Python 2 or 3, it's totally
deterministic.
- The build system also patches up the python source code a little,
so it can be installed directly with setup.py (it needs a little
stuff that it normally expects the build system to do.)
- Rework the python package to a separate file that uses
buildPythonPackage directly. Because the source code is already
prepared, it needs almost nothing else. Furthermore, this kills
the override itself for the foundationdb package, meaning rebuilds
are no longer needed.
- This package is very simple and just uses foundationdb.pythonsrc
as its source input. It also ensures a link to libfdb_c.so can
be found by ctypes (using substituteInPlace)
- python-packages.nix now just uses callPackage directly.
The net effect of this is, most importantly, that python packages do not
imply a full rebuild of the server source code: building python2 and
python3 packages from a version of FoundationDB now does not need to
override the foundationdb python input, reducing the number of needless
builds. They instead just run setup.py with the given version as input.
The second biggest effect is that wheel metadata is recorded correctly,
meaning dependent-python-packages that want to use the FoundationDB
bindings e.g. from PyPi should now work fine with buildPythonPackage.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
There’s nothing wrong with unstable packages when they are maintained
and frequently updated. However, when they become out-of-date, as many
do, it is usually best to just get rid of them as the stable version
is become newer than the unstable version. This removes any packages
called "unstable" that have not been updated in over 1 year. Affected
packages include:
- isyncUnstable
- sxhkd-unstable
- dosbox-unstable
Revert "treewide: remove unstable packages"
This reverts commit df01b0b37a04624cfe6f8d2ccb42b99289841b68.
The waf build system is python-based and hosted locally in each package in the executable file named "waf". Unlike CMake, it cannot generate makefiles so we end up having to override the configure, build, and install phases. I've tried to keep these as close to what's in setup.sh as possible. If there is no waf file in the root directory, then we just copy the one hosted in Nixpkgs. Otherwise the only thing you have to add to a package using Waf is "wafHook" into nativeBuildInputs. wafFlags controls the flags specifically passed to waf while configureFlags, buildFlags, and installFlags are still used as in the generic builder.
libreoffice-unwrapped points to the same libreoffice than libreoffice.
libreoffice-*-unwrapped exists for all versions
This bring an incompatible change where a user using
`libreoffice-unwrapped` hoping to use `fresh` would now be inadvertently
be using `still`.
Undefined symbols for architecture x86_64:
"_NSDefaultRunLoopMode", referenced from:
_cvWaitKey in window_cocoa.mm.o
"_OBJC_CLASS_$_NSDate", referenced from:
objc-class-ref in window_cocoa.mm.o
objc-class-ref in cap_qtkit.mm.o
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in window_cocoa.mm.o
objc-class-ref in cap_qtkit.mm.o
"_OBJC_CLASS_$_NSMutableDictionary", referenced from:
objc-class-ref in window_cocoa.mm.o
"_OBJC_CLASS_$_NSRunLoop", referenced from:
objc-class-ref in cap_qtkit.mm.o
"_OBJC_CLASS_$_NSTimer", referenced from:
objc-class-ref in cap_qtkit.mm.o
ld: symbol(s) not found for architecture x86_64
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_NSDate", referenced from:
objc-class-ref in _x002.o
"_OBJC_CLASS_$_NSRunLoop", referenced from:
objc-class-ref in _x002.o
ld: symbol(s) not found for architecture x86_64
Undefined symbols for architecture x86_64:
"_NSDefaultRunLoopMode", referenced from:
_uiMainStep in main.m.o
"_OBJC_CLASS_$_NSDate", referenced from:
objc-class-ref in main.m.o
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in multilineentry.m.o
"_OBJC_CLASS_$_NSMutableArray", referenced from:
objc-class-ref in alloc.m.o
objc-class-ref in box.m.o
objc-class-ref in menu.m.o
objc-class-ref in radiobuttons.m.o
objc-class-ref in tab.m.o
ld: symbol(s) not found for architecture x86_64
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_NSData", referenced from:
objc-class-ref in _x002.o
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in _x002.o
"_OBJC_CLASS_$_NSURL", referenced from:
objc-class-ref in _x002.o
ld: symbol(s) not found for architecture x86_64
Undefined symbols for architecture x86_64:
"_NSDefaultRunLoopMode", referenced from:
__glfwPlatformPollEvents in cocoa_window.m.o
__glfwPlatformWaitEvents in cocoa_window.m.o
__glfwPlatformWaitEventsTimeout in cocoa_window.m.o
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in cocoa_window.m.o
"_OBJC_CLASS_$_NSDate", referenced from:
objc-class-ref in cocoa_window.m.o
ld: symbol(s) not found for architecture x86_64
Undefined symbols for architecture x86_64:
"_NSDefaultRunLoopMode", referenced from:
fl_open_display() in Fl_cocoa.o
fl_ready() in Fl_cocoa.o
fl_wait(double) in Fl_cocoa.o
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in Fl_cocoa.o
"_OBJC_CLASS_$_NSData", referenced from:
objc-class-ref in Fl_Sys_Menu_Bar.o
"_OBJC_CLASS_$_NSDate", referenced from:
objc-class-ref in Fl_cocoa.o
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in Fl_cocoa.o
"_OBJC_CLASS_$_NSURL", referenced from:
objc-class-ref in Fl_Native_File_Chooser_MAC.o
ld: symbol(s) not found for architecture x86_64
Also remove incorrect emacs25Macport alias.
Undefined symbols for architecture x86_64:
"_CFNotificationCenterAddObserver", referenced from:
_mac_term_init in macterm.o
_macfont_copy_available_families_cache in macfont.o
"_CFNotificationCenterGetDistributedCenter", referenced from:
_mac_term_init in macterm.o
"_CFNotificationCenterGetLocalCenter", referenced from:
_macfont_copy_available_families_cache in macfont.o
"_CFURLCopyResourcePropertyForKey", referenced from:
_Fmac_file_alias_p in mac.o
"_CFURLCreateBookmarkDataFromFile", referenced from:
_Fmac_file_alias_p in mac.o
"_CFURLCreateByResolvingBookmarkData", referenced from:
_Fmac_file_alias_p in mac.o
"_CFURLResourceIsReachable", referenced from:
_mac_update_title_bar in macfns.o
_mac_input_source_properties in macfns.o
"_NSDefaultRunLoopMode", referenced from:
-[NSApplication(Emacs) runTemporarilyWithBlock:] in macappkit.o
___57-[EmacsController handleQueuedNSEventsWithHoldingQuitIn:]_block_invoke in macappkit.o
_mac_run_loop_run_once in macappkit.o
___mac_run_loop_run_once_block_invoke in macappkit.o
___37-[EmacsController(Menu) trackMenuBar]_block_invoke in macappkit.o
___create_and_show_dialog_block_invoke.2445 in macappkit.o
___mac_select_block_invoke in macappkit.o
...
"_NSURLAttributeModificationDateKey", referenced from:
_mac_document_create_with_url in macappkit.o
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSData", referenced from:
l_OBJC_$_CATEGORY_NSData_$_Emacs in macappkit.o
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSDate", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSMethodSignature", referenced from:
l_OBJC_$_CATEGORY_NSMethodSignature_$_Emacs in macappkit.o
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSMutableArray", referenced from:
l_OBJC_$_CATEGORY_NSMutableArray_$_Emacs in macappkit.o
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSMutableData", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSMutableDictionary", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSMutableSet", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSNull", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSRunLoop", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSSet", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSTimer", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSURL", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSUserDefaults", referenced from:
objc-class-ref in macappkit.o
"_OBJC_EHTYPE_$_NSException", referenced from:
GCC_except_table81 in macappkit.o
GCC_except_table810 in macappkit.o
"_kCFURLIsAliasFileKey", referenced from:
_Fmac_file_alias_p in mac.o
"_kCFURLIsSymbolicLinkKey", referenced from:
_Fmac_file_alias_p in mac.o
ld: symbol(s) not found for architecture x86_64
Undefined symbols for architecture x86_64:
"_CFNotificationCenterAddObserver", referenced from:
_macfont_copy_available_families_cache in macfont.o
"_CFNotificationCenterGetLocalCenter", referenced from:
_macfont_copy_available_families_cache in macfont.o
"_NSDefaultRunLoopMode", referenced from:
_ns_send_appdefined in nsterm.o
-[EmacsApp run] in nsterm.o
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
objc-class-ref in nsselect.o
"_OBJC_CLASS_$_NSData", referenced from:
objc-class-ref in nsimage.o
"_OBJC_CLASS_$_NSDate", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in macfont.o
"_OBJC_CLASS_$_NSLocale", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSMutableArray", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSMutableDictionary", referenced from:
objc-class-ref in nsmenu.o
objc-class-ref in nsselect.o
"_OBJC_CLASS_$_NSMutableSet", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSRunLoop", referenced from:
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSTimer", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSURL", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsfns.o
"_OBJC_CLASS_$_NSUserDefaults", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsfns.o
"_OBJC_EHTYPE_$_NSException", referenced from:
GCC_except_table8 in nsterm.o
GCC_except_table1 in nsselect.o
ld: symbol(s) not found for architecture x86_64
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_NSMutableArray", referenced from:
objc-class-ref in trash-571f39.o
"_OBJC_CLASS_$_NSURL", referenced from:
objc-class-ref in trash-571f39.o
"_OBJC_CLASS_$_NSUserDefaults", referenced from:
objc-class-ref in trash-571f39.o
objc-class-ref in HGCLIUtils-31f3b3.o
ld: symbol(s) not found for architecture x86_64